打印两个有序链表的公共部分
【题目】 给定两个有序链表的头指针head1和head2,打印两个 链表的公共部分。
思路:找到两个链表第一个公共节点即可,求出两个链表的长度差,即可找到第一个公共结点。本题因为给定是有序链表,则更加简单,如果两个head的数据域不等,则让小的后移一个,数据域相等时则是第一个公共点。
void print(Node*p){
while (p != NULL){
cout << p->data<<" ";
p = p->_next;
}
cout << endl;
}
void same_part(Node*head1, Node*head2){
while (head1->data != head2->data){
if (head1->data < head2->data)
{
head1 = head1->_next;
}
else
head2 = head2->_next;
}
print(head1);
}