题目
给定两个有序链表的头指针head1和head2, 打印两个链表的公共部分.
链表使用如下结构:
1 2 3 4 5 6 7
| public class Node { public int value; public Node next; public Node(int data) { this.value = data; } }
|
思路
- head1 < head2, head1后移
- head1 > head2, head2后移
- head1 = head2, 打印value, head1和head2同时后移
- head1或head2任意next为null, 终止
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void getCommonPart(Node head1, Node head2) { System.out.println("Common Part: "); while (head1.next != null && head2.next != null) { if(head1.value < head2.value) { System.out.println(head1.value + ","); head1 = head1.next; continue; } if (head1.value > head2.value) { System.out.println(head2.value + ","); head2 = head2.next; continue; } System.out.println(head1.value + ","); head1 = head1.next; head2 = head2.next; } System.out.println(""); }
|