将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
【代码】
/** * 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) {
//下面4行是空判断
if (l1 == null)
return l2;
else if (l2 == null)
return l1;
ListNode head = new ListNode();
ListNode curr = head;
while (l1 != null && l2 !=null)
{
if (l1.val < l2.val) //谁小谁先入
{
curr.next = l1;
l1 = l1.next;
}
else
{
curr.next = l2;
l2 = l2.next;
}
curr = curr.next;
}
curr.next = l1 == null ? l2:l1; //把不为空的链表挂到后面
return head.next;
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_38689263/article/details/120250651
内容来源于网络,如有侵权,请联系作者删除!