写点什么

21. 合并两个有序链表(链表)

用户头像
黄敏
关注
发布于: 刚刚

原地址

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音视频处理技术

评论

发布
暂无评论
21. 合并两个有序链表(链表)