本文共 2253 字,大约阅读时间需要 7 分钟。
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { if (list1 == null) { return list2; } if (list2 == null) { return list1; } ListNode newHead = (list1.val <= list2.val) ? list1 : list2; if (list1.val <= list2.val) { newHead = list1; list1 = list1.next; //无需加上newHead.next = null; 因为此场景不可能出现环 } else { newHead = list2; list2 = list2.next; } ListNode newTail = newHead; while (list1 != null && list2 != null) { if (list1.val <= list2.val) { newTail.next = list1; list1 = list1.next; } else { newTail.next = list2; list2 = list2.next; } newTail = newTail.next; } if (list1 != null) { newTail.next = list1; } else { newTail.next = list2; } return newHead; } public ListNode Merge1(ListNode list1,ListNode list2) { if (list1 == null) { return list2; } if (list2 == null) { return list1; } ListNode newHead = null, newTail = null; while (list1 != null && list2 != null) { if (list1.val <= list2.val) { if (newHead == null) { newHead = list1; newTail = list1; } else { newTail.next = list1; newTail = list1; } list1 = list1.next; } else { if (newHead == null) { newHead = list2; newTail = list2; } else { newTail.next = list2; newTail = list2; } list2 = list2.next; } } if (list1 != null) { newTail.next = list1; } if (list2 != null) { newTail.next = list2; } return newHead; }}
转载地址:http://ifnii.baihongyu.com/