将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。
下面展示一些 内联代码片
。
// A code block
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode l3=new ListNode(0);
ListNode l4=l3;
while (l1!=null&&l2!=null)
{
if(l1.val<l2.val)
{
ListNode temp=new ListNode(0);
temp.val=l1.val;
l3.next=temp;
l3=l3.next;
l1=l1.next;
}
if(l1!=null&&l2!=null&&l1.val>=l2.val)
{
ListNode temp=new ListNode(0);
temp.val=l2.val;
l3.next=temp;
l3=l3.next;
l2=l2.next;
}
}
while (l1!=null)
{
ListNode temp=new ListNode(0);
temp.val=l1.val;
l3.next=temp;
l3=l3.next;
l1=l1.next;
}
while (l2!=null)
{
ListNode temp=new ListNode(0);
temp.val=l2.val;
l3.next=temp;
l3=l3.next;
l2=l2.next;
}
l1=l4;
return l1.next;
}
}
有关链表问题,要注意当前链表为null时,读取它的val是会报错的
可以像这样每次新建一个链表节点来插入