2.1 打印两个有序链表的公共部分

题目:给定两个有序链表的头指针head1和head2,打印两个链表的公共部分。

 1 //链表结点的定义
 2 typedef struct Node
 3 {
 4     int value;
 5     struct Node *next;
 6 }Node, *LNode; 
 7 
 8 //打印有序链表公共部分的函数
 9 void printCommonPart(LNode head1, LNode head2)
10 {
11     cout << "Common Part: ";
12     while (head1 != NULL && head2 != NULL)
13     {
14         if (head1->value < head2->value)     //如果链表1的当前元素比链表2的小,那么链表1的指针后移一位
15         {
16             head1 = head1->next;
17         }
18         else if (head1->value > head2->value) //如果链表1的当前元素比链表2的大,则链表2的指针后移一位
19         {
20             head2 = head2->next;
21         }
22         else                                  //如果两个元素相等,则打印,两个指针同时后移一位
23         {
24             cout << head1->value << " ";
25             head1 = head1->next;
26             head2 = head2->next;
27         }
28     }
29     cout << endl;
30 }

猜你喜欢

转载自www.cnblogs.com/latup/p/9388789.html
2.1
今日推荐