[LeetCode] Merge Two Sorted Lists
来源:互联网 发布:第三方软件评测机构 编辑:程序博客网 时间:2024/05/16 08:21
题目:
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.
解答:
/** * 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; } ListNode *head; if(l1 -> val < l2 -> val) { head = l1; l1 -> next = mergeTwoLists(l1 -> next, l2); } else { head = l2; l2 -> next = mergeTwoLists(l1, l2 -> next); } return head; }};
思路:
如果企图用多个指针从前至后遍历两个链表,然后对相应的next做修改,那工作量可不小。其实最简单的方法是递归:
每一次递归,如果两个链表某一个为空,则返回另一个链表;如果两个链表都不为空,则判断两个链表当前头部元素的大小,设置数值小的节点为头部,然后递归。这样做,每一次都能够确定当前全局最小的元素,由此把两个排好序的链表merge成一个排好序的链表。
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
- Mysql触发器
- heartbeat
- 成为Java高手的25个学习要点
- SQL Tuning Advisor报错ORA-00600: internal error code, arguments: [kesqsMakeBindValue:obj]
- 数据结构中树的一些基本概念
- [LeetCode] Merge Two Sorted Lists
- NSLog使用,在release版本禁止输出NSLog内容
- Introduction to lead/lag compensator 超前/滞后矫正环节 自动控制原理
- Matlab的函数中如何实现按引用传递参数
- 使用DateLocaleConverter和SimpleDateFormat实现字符串转换成日期的区别
- IOS真机测试时如何查看真机的沙盒文件
- [self class]与[super class]引出对self及super的内存调用思考
- 关于服务器部署apache服务器的相关注意事项
- 远程桌面登陆后黑屏或无法进行操作的解决办法