算法:合并两个排序的链表
合并两个排序的链表
合并两个排序的链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
分析
其实就是类似于归并排序中归并的操作;
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class Solution { public ListNode Merge(ListNode list1, ListNode list2) { if (list1 == null && list2 == null) return null; if (list1 == null) return list2; if (list2 == null) return list1;
ListNode scott = new ListNode(0); ListNode cur = scott; while (list1 != null && list2 != null) { if (list1.val < list2.val) { cur.next = list1; list1 = list1.next; } else { cur.next = list2; list2 = list2.next; } cur = cur.next; }
if (list1 != null) cur.next = list1; if (list2 != null) cur.next = list2; return scott.next; } }
|