public class MergeSortedLinkList25 {
static class Node {
int val;
Node next;
public Node(int val){
this.val = val;
}
@Override
public String toString() {
return "Node{" +
"val=" + val +
", next=" + next +
'}';
}
}
public static void main(String[] args) {
Node root = new Node(0);
Node node1 = new Node(2);
Node node2 = new Node(4);
Node node3 = new Node(6);
Node node4 = new Node(8);
Node node5 = new Node(10);
root.next = node1;
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
Node root2 = new Node(1);
Node node21 = new Node(3);
Node node22 = new Node(5);
Node node23 = new Node(7);
Node node24 = new Node(9);
root2.next = node21;
node21.next = node22;
node22.next = node23;
node23.next = node24;
System.out.println(merge(root, root2));
}
private static Node merge(Node root1, Node root2) {
Node p1 = root1;
Node p2 = root2;
Node head = new Node(-1);
Node p = head;
while (p1 != null && p2 != null) {
Node node = null;
if (p1.val < p2.val) {
node = new Node(p1.val);
p1 = p1.next;
} else {
node = new Node(p2.val);
p2 = p2.next;
}
p.next = node;
p = p.next;
}
while (p1 != null) {
Node node = new Node(p1.val);
p1 = p1.next;
p.next = node;
p = p.next;
}
while (p2 != null) {
Node node = new Node(p2.val);
p2 = p2.next;
p.next = node;
p = p.next;
}
p.next = null;
return head.next;
}
}
剑指offer25 合并两个有序链表 Java
猜你喜欢
转载自blog.csdn.net/weixin_43065507/article/details/99332264
今日推荐
周排行