[LeetCode]Merge Two Sorted Lists
来源:互联网 发布:在淘宝怎么开旗舰店 编辑:程序博客网 时间:2024/06/05 09:22
题目描述
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.
将两个有序的链表合并成一个
解题思路
通过比较两个链表的头节点,得到val较小的那个作为被插入链表,即outerNode,大的那个作为待插入链表,即innerNode。
while(outerNode!=null && innerNode!=null)则判断innerNode和当前outerNode的val大小,小于等于则插入,outerNode不变,innerNode = innerNode.next,大于则outerNode = outerNode.next;
需要注意:被插入链表长度小于待插入链表长度的情况。
代码
public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null && l2==null) return null; if(l1==null && l2!=null) return l2; if(l2==null && l1!=null) return l1; ListNode outerNode = l1; ListNode innerNode = l2; ListNode result,lastNode,tempNode; //确立那个链表的头是最终的表头,将innerNode的链表插入的outerNode链表中 if(l1.val > l2.val){ outerNode = l2; innerNode = l1; } result = outerNode;//最终返回的链表头 lastNode = outerNode;//记录被插入链表的上一个节点 outerNode = outerNode.next; while(outerNode!=null && innerNode!=null){ if(innerNode.val<=outerNode.val){ //内层链表插入到外层链表中 tempNode = innerNode.next; lastNode.next = innerNode; innerNode.next = outerNode; lastNode = innerNode; innerNode = tempNode; } else { lastNode = outerNode; outerNode = outerNode.next; } } //如果外层链表长度小于待插入链表,则将剩余的连接上 if(outerNode==null && innerNode!=null){ lastNode.next = innerNode; } return result;}
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
- 32位+2G+Win7系统,如何解决out of memory问题
- 将数组的奇数移到前面偶数到后面&&输出链表的倒数第k个结点
- 使用JUnit测试预期异常
- ie8开发人员工具
- Android 在activity中显示非view组件eg:GLSurfaceView
- [LeetCode]Merge Two Sorted Lists
- 观察者模式
- tibco.ems.illegalstateexception illegal use of receive() from multiple threads
- Oracle BIEE
- int main(int argc,char* argv[])详解
- 有关String对象的一个面试题
- 最小生成树之普里姆算法
- Struts1与Struts2原理
- 支持向量机通俗导论(理解SVM的三层境界)