0%

打印两个有序链表的公共部分

题目

给定两个有序链表的头指针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("");
}