题目
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
//(来源:力扣(LeetCode)
//链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
//著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。)
思路
思路:此题难度为简单,理清思路很好解决。既然已经是有序链表就只需要将两个链表的结点不挺地加在结果链表的后面。每次添加时只需比较两个被合并链表的表头谁更小就可以了。
结果
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode tp1 = l1;
ListNode tp2 = l2;//两个tp结点相当于每次要添加的结点
ListNode con = new ListNode(-1);//con表示结果链表
ListNode tmp = con;//tmp是在con链表上的标志结点
while(tp1!=null||tp2!=null){
if(tp1==null){
tmp.next = tp2;
tmp = tmp.next;
tp2 = tp2.next;
}else if(tp2==null){
tmp.next = tp1;
tmp = tmp.next;
tp1 = tp1.next;
}else{
if(tp1.val<=tp2.val){
tmp.next = tp1;
tmp = tmp.next;
tp1 = tp1.next;
}else{
tmp.next = tp2;
tmp = tmp.next;
tp2 = tp2.next;
}
}
}
return con.next;
}
}
–2020/3/4