将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 算法面试题 算法 简单算法 数据结构 算法笔试 java链表算法

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

链表的结构是:

链表可分为单向链表和双向链表。

一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。

一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。

Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。

现在明白什么是链表了 ,存储的是一个值与一个指针指向下一个数据

  public ListNodeInt mergeTwoLists(ListNodeInt l1, ListNodeInt l2) {
        //初始化一个链表
        ListNodeInt dummyHead = new ListNodeInt(0);
        ListNodeInt cur = dummyHead;
        while (l1 != null && l2 != null) {
            if (l1.val < l2.val) {
                //这个链表的指针指向l1的这个数据
                cur.next = l1;
                //跟新这个新链表的指针
                cur = cur.next;
                //l1读取这个链表的下一个数据
                l1 = l1.next;
            } else {
                //这个链表的指针指向l2的这个数据
                cur.next = l2;
                //跟新这个新链表的指针
                cur = cur.next;
                //l2读取这个链表的下一个数据
                l2 = l2.next;
            }
        }
        // 任一为空,直接连接另一条链表
        if (l1 == null) {
            cur.next = l2;
        } else {
            cur.next = l1;
        }
        //返回新建链表的下一个就是新的有序链表
        return dummyHead.next;
    }

 

Guess you like

Origin blog.csdn.net/yu1xue1fei/article/details/113779227