Skip to content

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

@Ming-Qin-tech

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]

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