Print Common Part In List

PrintLists(打印链表的公共部分)

题目描述:

给定两个有序链表的头结点,要求打印出两个链表中的公共节点部分。题目思路很简单,分别从两个链表头部开始遍历,判断其值的大小决定各自遍历指针是否移动,相等的情况就打印就可以。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class printCommonPart1 {
public:
void printCommonPart(ListNode* head1, ListNode* head2) {
while( head1 != NULL && head2 != NULL){
if (head1->val == head2->val){
cout << head1->val << endl;
head1 = head1->next;
head2 = head2->next;
} // 相同的情况打印并同时移动遍历指针
else if (head1->val > head2->val){
head2 = head2->next;
}
else if (head1->val < head2->val) {
head1 = head1->next;
// 较小的指向值指针移动
}
}
}
};