水题,不多做解释了。
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2==null) { return l1; } ListNode L1Head=l1; ListNode L2Head=l2; ListNode NewHead=new ListNode(-9); ListNode NewHeadPtr=NewHead; while(L1Head!=null && L2Head!=null) { if(L1Head.val<=L2Head.val) { NewHeadPtr.next=L1Head; L1Head=L1Head.next; NewHeadPtr=NewHeadPtr.next; } else{ NewHeadPtr.next=L2Head; L2Head=L2Head.next; NewHeadPtr=NewHeadPtr.next; } } if(L2Head!=null) { NewHeadPtr.next=L2Head; } else if(L1Head!=null) { NewHeadPtr.next=L1Head; } return NewHead.next; // if(L1Head.val<L2Head.val)//那一个小 就插哪一个 // { // }else{ // } } }