LeetCode之21. Merge Two Sorted Lists
2018-03-08 16:00
507 查看
这道题与数组中的归并排序问题,非常类似,只是换了数据类型,有递归和迭代两种方法.
1. 方法1 (递归)
1.1 C# 代码
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x; } * } */ public class Solution { public ListNode MergeTwoLists(ListNode l1, ListNode l2) { if(l1 == null) return l2; if(l2 == null) return l1; if(l1.val > l2.val) { ListNode tmp = l2; tmp.next = MergeTwoLists(l1, l2.next); return tmp; } else { ListNode tmp = l1; tmp.next = MergeTwoLists(l1.next, l2); return tmp; } } }
1.2 Python3 代码
2. 方法2(迭代)
2.1 C# 代码
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x; } * } */ public class Solution { public ListNode MergeTwoLists(ListNode l1, ListNode l2) { if(l1 == null) return l2; if(l2 == null) return l1; ListNode result = new ListNode(0); ListNode Hc = result; while(l1 != null && l2 != null) { if(l1.val < l2.val) { Hc.next = l1; l1 = l1.next; } else { Hc.next = l2; l2 = l2.next; } Hc = Hc.next; } if(l1 != null) { l2 = l1; } while(l2 != null) { Hc.next = l2; Hc = Hc.next; l2 = l2.next; } return result.next; } }
2.2 Python 3代码
相关文章推荐
- 【Leetcode】21. Merge Two Sorted Lists
- leetcode: 21. Merge Two Sorted Lists
- 21. Merge Two Sorted Lists LeetCode
- Leetcode 21. Merge Two Sorted Lists
- [LeetCode] 21. Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists
- [leetcode]21. Merge Two Sorted Lists
- LeetCode-21. Merge Two Sorted Lists
- 【leetcode】21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- 【一天一道LeetCode】#21. Merge Two Sorted Lists
- [勇者闯LeetCode] 21. Merge Two Sorted Lists
- [leetcode] 21. Merge Two Sorted Lists
- Leetcode 21. Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists
- 【一天一道LeetCode】#21. Merge Two Sorted Lists
- [leetcode-排序]--21. Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists
- 【LeetCode】21. Merge Two Sorted Lists