Skip to content

C++/21. Merge Two Sorted Lists 编译出错 #10

Description

@Ming-Qin-tech

/**

  • Definition for singly-linked list.
  • struct ListNode {
  • int val;
    
  • ListNode *next;
    
  • ListNode(int x) : val(x), next(NULL) {}
    
  • };
    /
    class Solution {
    public:
    ListNode
    mergeTwoLists(ListNode* l1, ListNode* l2) {
    if(l1 != NULL && l2 != NULL) {
    ListNode *p = l1;
    ListNode *q = l2;
    ListNode *t, *h; //t为新链表的连接指针,h为新链表的头指针
    if(p->val > q->val) {
    t = q;
    h = q;
    q = q->next;
    } else {
    t = p;
    h = p;
    p = p->next;
    }
    while(p != NULL && q != NULL) {
    if(p->val > q->val) {
    t->next = q;
    t = t->next;
    q = q->next;
    } else {
    t->next = p;
    t = t->next;
    p = p->next;
    }
    }
    while(p != NULL && q == NULL) {
    t->next = p;
    t = t->next;
    p = p->next;
    }
    while(p == NULL && q != NULL) {
    t->next = q;
    t = t->next;
    q = q->next;
    }
    while(p == NULL && q == NULL) {
    return h;
    }
    }
    if(l1 == NULL && l2 != NULL) {
    return l2;
    }
    if(l1 != NULL && l2 == NULL) {
    return l1;
    }
    if(l1 == NULL && l2 == NULL) {
    return NULL;
    }
    return NULL;
    }
    };
    所不同的就是line 59加一行: return NULL;
    虽然用不到,但是如果不加就会编译出错:
    error:control reaches end of non-void function[-Werror=return-type]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions