【题目】
给定2个有序链表的头指针head1和head2,打印两个链表的公共部分
【要求】
两个量表总长度为N,时间复杂度为O(N),二娃空间复杂度O(1)
public class Node{
public int value;
public Node next;
public Node(int value) {
this.value = value;
}
}
private void printCommonPart(Node head1, Node head2){
if(null == head1 || null == head2){
return;
}
System.out.print("common part: ");
while (head1 != null && head2 != null){
if (head1.value > head2.value){
head2 = head2.next;
} else if(head2.value > head1.value){
head1 = head1.next;
} else {
System.out.print(head1.value + " ");
head1 = head1.next;
head2 = head2.next;
}
}
}
方法很简单,思路也很简单,依次对比,哪个值小就往前进一步,一样大,打印,一起向前进一步。不会的,代码多敲几遍就会了



