【剑指offer】面试题25:合并两个排序的链表(Java 实现)
題目:輸入兩個遞增排序的鏈表,合并這兩個鏈表并使新鏈表中的結點仍然是按照遞增排序的。
代碼:
package offer;
class Node5
{
?? ?int val;
?? ?Node5 next = null;
?? ?Node5(int val)
?? ?{
?? ??? ?this.val = val;
?? ?}
}
public class ti25 {
?? ?public static Node5 Merge(Node5 node1,Node5 node2)
?? ?{
?? ??? ?Node5 p = node1,q = node2;
?? ??? ?Node5 now = new Node5(0);
?? ??? ?Node5 result = now;
?? ??? ?while(p!=null&&q!=null)
?? ??? ?{
?? ??? ??? ?if(p.val<=q.val)
?? ??? ??? ?{
?? ??? ??? ??? ?result.next = p;
?? ??? ??? ??? ?p = p.next;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?result.next = q;
?? ??? ??? ??? ?q = q.next;
?? ??? ??? ?}
?? ??? ??? ?result = result.next;
?? ??? ?}
?? ??? ?if(p!=null)
?? ??? ?{
?? ??? ??? ?result.next = p;
?? ??? ?}
?? ??? ?else if(q!=null)
?? ??? ?{
?? ??? ??? ?result.next = q;
?? ??? ?}
?? ??? ?return now.next;
?? ??? ?
?? ?}
?? ?public static void main(String[] args)
?? ?{
?? ??? ?Node5 node1 = new Node5(1);
?? ??? ?Node5 node2 = new Node5(2);
?? ??? ?Node5 node3 = new Node5(3);
?? ??? ?Node5 node4 = new Node5(4);
?? ??? ?Node5 node5 = new Node5(5);
?? ??? ?Node5 node6 = new Node5(6);
?? ??? ?Node5 node7 = new Node5(7);
?? ??? ?Node5 node8 = new Node5(8);
?? ??? ?node1.next = node3;
?? ??? ?node3.next = node5;
?? ??? ?node5.next = node7;
?? ??? ?node2.next = node4;
?? ??? ?node4.next = node6;
?? ??? ?node6.next = node8;
?? ??? ?Node5 head = Merge(node1,node2);
?? ??? ?while(head!=null)
?? ??? ?{
?? ??? ??? ?System.out.println(head.val);
?? ??? ??? ?head = head.next;
?? ??? ?}
?? ?}
}
?
總結
以上是生活随笔為你收集整理的【剑指offer】面试题25:合并两个排序的链表(Java 实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode--12. 整数转罗马数
- 下一篇: Leetcode--1111. 有效括号