引言
打印两个有序链表的公共部分。给定的两个链表的头部head1和head2,打印出两个链表公共部分。
思路
定义两个指针,分别指向两个链表的头结点,比较value值,谁小移动谁;相等打印并同时移动,任何一个节点下一个节点是null,程序结束。
代码实现
public class TwoLinkedCommon {
public static class Node{
public int value;
public Node next;
public Node(int value) {
this.value = value;
}
}
/**
* 打印相同部分
* @param head1
* @param head2
*/
public static void twoLinkedCommon(Node head1, Node head2){
Node node1 = head1;
Node node2 = head2;
while (node1 != null && node2 != null) {
if(node1.value < node2.value) {// node1 小移动
node1 = node1.next;
}else if(node1.value > node2.value) {// node2 小移动
node2 = node2.next;
}else{ // 相同打印
System.out.print