21. 合并两个有序链表(链表)
原地址
https://leetcode-cn.com/problems/merge-two-sorted-lists/submissions/
原理
两个链表合并,因为是有序的,所以直接从头比较两个链表,数据小的链表的指针进行移动。当其中的一个链表结束后(为 null),另外一个列表剩余的部分直接追加到新链表中。
代码
复制代码
https://leetcode-cn.com/problems/merge-two-sorted-lists/submissions/
两个链表合并,因为是有序的,所以直接从头比较两个链表,数据小的链表的指针进行移动。当其中的一个链表结束后(为 null),另外一个列表剩余的部分直接追加到新链表中。
/**
* 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) {
ListNode root=new ListNode(0);
ListNode head=root;
while(l1!=null && l2!=null){
if(l1.val<l2.val){
head.next=l1;
head=head.next;
l1=l1.next;
}else{
head.next=l2;
head=head.next;
l2=l2.next;
}
}
if(l1==null){
head.next=l2;
}
if(l2==null){
head.next=l1;
}
return root.next;
}
}
还未添加个人签名 2019.11.30 加入
熟悉Java并发编程、数据结构和算法、FFmpeg音视频处理技术
促进软件开发及相关领域知识与创新的传播
评论