LeetCode_Linked List_Merge Two Sorted Lists
来源:互联网 发布:mysql修改数据 编辑:程序博客网 时间:2024/06/16 06:07
21.Merge Two Sorted Lists
1. 问题描述:
合并两个有序链表,并返回一个新的有序链表。
2. 解决思路:
这道题很简单。可以用递归求解,也可以用非递归求解;注意:如果用非递归求解,发现新链表的头结点不确定,所以引入dummy节点。不多说之间上代码。
3. java代码:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //递归 /*ListNode ret = null; if(l1 == null) return l2; if(l2 == null) return l1; if(l1.val > l2.val){ ret = l2; ret.next = mergeTwoLists(l2.next,l1); } else { ret = l1; ret.next = mergeTwoLists(l1.next,l2); } return ret;*/ /* 除了dummy节点外还引入一个lastNode节点充当下一次合并时的头节点。在l1或者l2的某一个节点为空指针NULL时,退出while循环,并将非空链表的头部链接到lastNode->next中。*/ ListNode dummy = new ListNode(0); ListNode lastNode = dummy; while((l1!=null) && (l2!=null)){ if(l2.val > l1.val){ lastNode.next = l1; l1 = l1.next; } else { lastNode.next = l2; l2 = l2.next; } lastNode = lastNode.next; } lastNode.next = (l1!=null)?l1:l2; return dummy.next; }}
4. 算法评估:
希望大家多多指正交流!
0 0
- LeetCode_Linked List_Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- Merge Two Sorted Lists
- 关于c++的interrpret
- Android监听程序自身被卸载
- 5.18~5.19
- Java------基础知识
- 抓包工具wireshark---学习篇:6
- LeetCode_Linked List_Merge Two Sorted Lists
- TCP/IP数据包结构详解
- URL中加入BASE64加密的字符串引起的问题(java.net.MalformedURLException:Illegal character in URL)
- 为button设置背景图片,且全无button痕迹的css
- 视觉直观感受 7 种常用的排序算法
- mongo笔记之监控
- 使用BlockingQueue进行线程间通信(java)
- DNS
- fatal error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory