合并两个排序的链表
题目
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路
判断两个链表的头结点值的大小,将小的链接到新建的头中。
(注,不可以将新节点直接指向某一链表。)
代码
public ListNode merge(ListNode list1,ListNode list2) {
if (list1 == null)
return list2;
if (list2 == null)
return list1;
ListNode list3 = new ListNode(0);//此处不可直接写list1
ListNode p1 = list1;
ListNode p2 = list2;
ListNode p3 = list3;
while(p1 != null && p2 != null){
if (p1.val <= p2.val){
p3.next = p1;
p1 = p1.next;
}else{
p3.next = p2;
p2 = p2.next;
}
p3 = p3.next;
}
if (p1 != null) p3.next = p1;
if (p2 != null) p3.next = p2;
list3 = list3.next;
return list3;
}