【题目】 给定两个有序链表的头指针head1和head2,打印两个 链表的公共部分。
代码:
package basic_class_03;
/**
* 类名:Code_10_PrintCommonPart<br>
* 功能:打印两个有序链的工共部分<br>
* 作者:java战士<br>
* 日期:2019/8/25<br>
* 版本:v1.0.0
* 历史修订:
*/
public class Code_10_PrintCommonPart{
public static class Node{
private int value;
private Node next;
public Node(int value) {
this.value = value;
}
}
public static void printCommonPart(Node head1,Node head2){
System.out.print("Common Part:");
while (head1!=null&&head2!=null){
if (head1.value>head2.value){
head2=head2.next;
}else if (head1.value<head2.value){
head1=head1.next;
}else {
System.out.print(head1.value+" ");
head1=head1.next;
head2=head2.next;
}
}
System.out.println();
}
public static void printLinkedList(Node head){
System.out.print("Linked List:");
while (head!=null){
System.out.print(head.value+" ");
head=head.next;
}
System.out.println();
}
public static void main(String[] args){
Node head1=new Node(2);
head1.next=new Node(3);
head1.next.next=new Node(4);
head1.next.next.next=new Node(6);
Node head2=new Node(4);
head2.next=new Node(5);
head2.next.next=new Node(6);
head2.next.next.next=new Node(7);
printLinkedList(head1);
printLinkedList(head2);
printCommonPart(head1,head2);
}
}
测试结果: