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.
Example
Given 1->3->8->11->15->null, 2->null , return 1->2->3->8->11->15->null
对于新表声明一个表头dummy 和一个指针head
然后每个list有一个指针来遍历两个list
时间O(m + n) 空间O(1)
public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode dummy = new ListNode(0); ListNode head = dummy; ListNode left = l1;// 指针可以不用left 和right ListNode right = l2;//直接用l1, l2也可以 while (left != null && right != null){ if (left.val <= right.val){ head.next = left; head = head.next; left = left.next; } else { head.next = right; head = head.next; right = right.next; } } if (left == null){ head.next = right; } if (right == null){ head.next = left; } return dummy.next; } }
没有评论:
发表评论