Leetcode 21. 合并两个有序链表
DEBUG
solution.c: In function ‘mergeTwoLists’ Line 16: Char 45: error: incompatible types when assigning to type ‘struct ListNode’ from type ‘struct ListNode *’ [solution.c] struct ListNode* p1, p2; p1 = list1, p2 = list2; ^
由于,
struct ListNode* p1, p2; p1 = list1, p2 = list2;
此处声明出现错误,应更改为:
struct ListNode* p1, *p2; p1 = list1, p2 = list2;
代码
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
if (list1 == NULL) return list2 == NULL ? NULL : list2;
if (list2 == NULL) return list1;
struct ListNode* newL = malloc(sizeof (struct ListNode)); //带头指针的单链表
struct ListNode* p = newL;
struct ListNode* p1, *p2; p1 = list1, p2 = list2;
while (p1 != NULL && p2 != NULL)
{
if (p1->val <= p2->val) p->next = p1,p=p1, p1 = p1->next;
else p->next = p2,p=p2, p2 = p2->next;
}
if (p1 != NULL) p->next = p1;
if (p2 != NULL) p->next = p2;
return newL->next;
}