问题描述:
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.
简单来说就是合并两个链表,链表中的元素的顺序仍然是从小到大排序:
总体来说比较简单,直接上代码:
private ListNode merge2Lists(ListNode list1,ListNode list2){
ListNode tem1=list1;
ListNode tem2=list2;
ListNode head=new ListNode(0);
ListNode tem=head;
while (tem1!=null&&tem2!=null){
if (tem1.val<tem2.val){
tem.next=tem1;
tem1=tem1.next;
}else {
tem.next=tem2;
tem2=tem2.next;
}
// tem.next=tem1.val>tem2.val?tem1:tem2;
tem=tem.next;
}
while (tem1!=null){
tem.next=tem1;
tem=tem.next;
tem1=tem1.next;
}
while (tem2!=null){
tem.next=tem2;
tem=tem.next;
tem2=tem2.next;
}
return head.next;
}
这里需要注意一点,对于合并链表这个需求,结果需要得到一个新的链表,题目中并没有说该链表不能和给定的两个链表不能有重复部分,因此没有必要通过创建节点来组建新的链表,这样做可以减少代码运行时间。