package list;
//迭代法
public class MergeTwoList {
public static void main(String[] args) { ListNode l1 = new ListNode(); ListNode listNode2 = new ListNode(); ListNode listNode3 = new ListNode(); ListNode listNode4 = new ListNode(); l1.setVal(1); listNode2.setVal(4); listNode3.setVal(6); listNode4.setVal(7); l1.next = listNode2; listNode2.next = listNode3; listNode3.next = listNode4; ListNode l2 = new ListNode(); ListNode listNode5 = new ListNode(); ListNode listNode6 = new ListNode(); ListNode listNode7 = new ListNode(); l2.setVal(2); listNode5.setVal(3); listNode6.setVal(4); listNode7.setVal(8); l2.next = listNode5; listNode5.next = listNode6; listNode6.next = listNode7; ListNode p = Merge(l1, l2); } public static ListNode Merge(ListNode list1, ListNode list2) { ListNode head = new ListNode(); head.setVal(-1); ListNode pre = head; while (list1 != null && list2 != null) { if (list1.val < list2.val) { head.next = list1; list1 = list1.next; } else { head.next = list2; list2 = list2.next; } head = head.next; } if (list1 == null) { head.next = list2; } if (list2 == null) { head.next = list1; } return pre.next; } static class ListNode { int val; ListNode next; public int getVal() { return val; } public void setVal(int val) { this.val = val; } public ListNode getNext() { return next; } public void setNext(ListNode next) { this.next = next; } }
}