赞
踩
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
定义返回的头,和便于新链表插入的尾巴。
1、先判定是否存在空,返回不空链表。
2、双指针遍历。
3、将已经为空的链表接到尾巴上。
代码:
- /**
- * Definition for singly-linked list.
- * struct ListNode {
- * int val;
- * struct ListNode *next;
- * };
- */
-
-
- struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
- if(list1==NULL)
- return list2;
- if(list2==NULL)
- return list1;
- struct ListNode* head,*tail = NULL;
- head = tail = NULL;
- while(list1&&list2)
- {
- if(list1->val<=list2->val)
- {
- if(tail == NULL)
- {
- head = tail = list1;
- }
- else
- {
- tail->next = list1;
- tail = tail->next;
- }
- list1 = list1->next;
- }
- else
- {
-
- if(tail == NULL)
- {
- head = tail = list2;
- }
- else
- {
- tail->next = list2;
- tail = tail->next;
- }
- list2 = list2->next;
- }
-
- }
- if(list1)
- tail->next = list1;
- if(list2)
- tail->next = list2;
- return head;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。