题解 | #合并两个排序的链表#

合并两个排序的链表

http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

Java代码实现:
例如:
输入:1->2->4, 1->3->5
输出:1->1->2->3->4->5
算法思想:因为原来的链表就是有序的,所以我们可以直接遍历,然后依次进行比较,较小的先连接到新链表中
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode head = new ListNode(0);   // 创建一个新节点作为新链表的头结点
        ListNode temp = head;         // 因为头结点不能动,所以创建临时结点指向头结点
        // 遍历两个链表的时候需要进行合法性校验
        while(l1 != null && l2 != null){
            if(l1.val < l2.val){
                temp.next = l1;
                l1 = l1.next;
            } else {
                temp.next = l2;
                l2 = l2.next;
            }
            temp = temp.next;   //连接好数据以后就往后移动
        }
        temp.next = l1 != null?l1:l2;     //使用三目运算符对末尾元素进行连接
        return head.next;
    }
}









全部评论

相关推荐

投递美团等公司10个岗位
点赞 评论 收藏
转发
1 3 评论
分享
牛客网
牛客企业服务