leetcode-Merge Two Sorted Lists
来源:互联网 发布:淘宝有好货写手 编辑:程序博客网 时间:2024/06/08 08:37
描述:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
将两个已经排序好的链表合并
由于已经排好序了,所以合并的话一趟就够了
两个链表 l1、l2,本人是把l2插在了l1上,首先要考虑几个问题
1、两个链表的头指针问题,要判断l2的头指针是不是大于l1的头指针
2、两个链表的中间部分
3、链表尾部问题
上代码
/** * 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) //防止为空,如果其中有一个为空,则返回不为空的一个链表 return l2; if(l2==NULL) return l1; struct ListNode *ptr2=l2; if((ptr2->val)<(l1->val)) //比较头指针 { struct ListNode *tempPtr = ptr2; ptr2=ptr2->next; tempPtr->next=l1; l1=tempPtr; } struct ListNode *ptr1=l1; while(ptr1->next!=NULL && ptr2!=NULL) { if(((ptr2->val>ptr1->val)||(ptr2->val==ptr1->val)) && ((ptr2->val)<(ptr1->next->val)))//在合并的时候要得到比较节点的上一个节点,这个非常麻烦,索性就比较当前节点的下一个节点 { struct ListNode *tempPtr = ptr2; ptr2=ptr2->next; tempPtr->next=ptr1->next; ptr1->next=tempPtr; ptr1=ptr1->next; } else { ptr1=ptr1->next; } } if(ptr1->next==NULL) //如果l1链表到了尾部,则把l2剩下的赋给l1 { ptr1->next=ptr2; } return l1; }};
leetcode Accepted
0 0
- LeetCode: Merge Two Sorted Lists
- [Leetcode] Merge Two Sorted Lists
- Leetcode: Merge Two Sorted Lists
- [LeetCode] Merge Two Sorted Lists
- [Leetcode] Merge two sorted lists
- leetcode Merge Two Sorted Lists
- [LeetCode]Merge Two Sorted Lists
- [leetcode]Merge Two Sorted Lists
- LeetCode-Merge Two Sorted Lists
- [leetcode] Merge Two Sorted Lists
- [LeetCode] Merge Two Sorted Lists
- LeetCode - Merge Two Sorted Lists
- LeetCode:Merge Two Sorted Lists
- LeetCode | Merge Two Sorted Lists
- 【leetcode】Merge Two Sorted Lists
- Leetcode: Merge Two Sorted Lists
- 【LeetCode】Merge Two Sorted Lists
- Leetcode Merge Two Sorted Lists
- RetentionPolicy用于修饰注解能否被JVM所读取
- wince下serlocaltime失效的原因
- js截取字符串
- UNDO相关问题总结(三)
- Highcharts基本柱图
- leetcode-Merge Two Sorted Lists
- hdoj 1885 Key Task(BFS + 状压)
- Z-stack之OSAL初始化流程
- android如何实现开机自动启动Service或app
- 语法的Chomsky层级
- Linux下printf()的实现
- Maven的Dependency怎么找,maven设置
- ZOJ-3166
- Linux物理内存概述