0
点赞
收藏
分享

微信扫一扫

【leetcode_Java】21. 合并两个有序链表

IT程序员 2022-03-30 阅读 52
java

创建java class:mergeTwoLists.java 和 ListNode.java

文件mergeTwoLists.java

package leetcode.TwoLists;
/*
21 合并两个有序列表
*/

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

public class mergeTwoLists {

    public static void main(String[] args) {
        mergeTwoLists TL = new mergeTwoLists();
        ListNode LN = new ListNode();
        // examples
        int[] arr1 = {1,2,4};
        int[] arr2 = {1,3,4};

        ListNode l1 = LN.ListToNode(arr1);
        ListNode l2 = LN.ListToNode(arr2);

        ListNode l = TL.mergerTwo_Lists(l1,l2);
        LN.PrintListNode(l);
    }

    public ListNode mergerTwo_Lists(ListNode list1, ListNode list2) {
        if(list1 == null) {
            return list2;
        } else if(list2 == null) {
            return list1;
        } else if(list1.val < list2.val) {
            // 当前节点指向的下一个节点
            list1.next = mergerTwo_Lists(list1.next, list2);
            return list1;
        } else {
            list2.next = mergerTwo_Lists(list1, list2.next);
            return list2;
        }
    }
}

文件ListNode.java

package leetcode.TwoLists;
/*
 * Definition for singly-linked list.
 */
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class ListNode {
    int val;
    ListNode next;

    // constructor
    ListNode() {

    }
    ListNode(int val) {
        this.val = val;
    }
    ListNode(int val, ListNode next) {
        this(val);
        this.next = next;
    }

    public ListNode ListToNode(int[] l){
        ListNode root = new ListNode(l[0]);
        // new pointer        
        ListNode pointer = root;
        for(int i = 1; i < l.length; i++) {
            ListNode new_node = new ListNode(l[i]);
            pointer.next = new_node;
            pointer = new_node;
        }
        return root;
    }

    public void PrintListNode(ListNode l) {
        while(l != null) {
            System.out.print(l.val + " ");
            l = l.next;
        }
    }
}
举报

相关推荐

0 条评论