题目描述:
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
一、解题思路
新建一个头指针list3和一个遍历list1和list2的指针t,然后在list1 and list2 链表不空的前提下比较大小
二、代码
代码如下(示例):
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode*list3;
list3=(struct ListNode*)malloc(sizeof(struct ListNode));
list3->next=NULL;
struct ListNode*t=list3;//t指向头指针
while(list1!=NULL&&list2!=NULL)
{
if(list1->val<list2->val)
{
t->next=list1;
list1=list1->next;
}
else
{
t->next=list2;
list2=list2->next;
}
t=t->next;
}
if(list1)t->next=list1;
if(list2)t->next=list2;
return list3->next;//这个我试着返回list3,发现list3是一堆乱码,就是头指针里边没有值?其实还是不太理解,课还没有听到这里,,
}
这是return list3->next的:
这是直接return list3的:
还是希望来个大佬给俺讲讲,我就是碰对的,但是还是不会。