算法题:两个有序链表合并一个链表

主函数:

        Node node = new Node(1);
        node.next = new Node(3);
        node.next.next = new Node(4);
        node.next.next.next = new Node(7);


        Node node2 = new Node(2);
        node2.next = new Node(5);
        node2.next.next = new Node(6);
        mergeNode(node, node2);
        System.out.println("");

合并函数

 public static Node mergeNode(Node node1, Node node2) {
        if (node1 == null || node2 == null) {
            return node1 == null ? node2 : node1;
        }
        Node head = node1.value < node2.value ? node1 : node2;
        Node cur1 = head.next;
        Node cur2 = head == node1 ? node2 : node1;
        Node pre = head;
        while (cur1 != null && cur2 != null) {
            if (cur1.value <= cur2.value) {
                pre.next = cur1;
                cur1 = cur1.next;
            } else {
                pre.next = cur2;
                cur2 = cur2.next;
            }
            pre = pre.next;
        }
        pre.next = cur1 != null ? cur1 : cur2;
        return head;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容