两个有序链表序列的交集
时间: 2023-12-30 19:05:09 浏览: 98
已知两个非降序链表序列S1和S2,我们需要设计一个函数来构造出S1和S2的交集新链表S3。
输入的格式是两行,分别对应S1和S2的序列。每行由若干个正整数组成,用-1表示序列的结尾,-1不属于这个序列。数字之间用空格间隔。
输出的格式是在一行中输出两个输入序列的交集序列,数字之间用空格分开,结尾不能有多余的空格。如果交集序列为空,输出NULL。
通过比较S1和S2的元素,我们可以找到它们的交集。具体步骤如下:
1. 从头开始遍历S1和S2的元素,同时比较它们的大小。
2. 如果S1当前元素小于S2当前元素,则继续遍历S1的下一个元素。
3. 如果S1当前元素大于S2当前元素,则继续遍历S2的下一个元素。
4. 如果S1当前元素等于S2当前元素,则将这个元素添加到S3中,并同时将S1和S2的指针向后移动一位。
5. 重复步骤2-4,直到遍历完S1或S2的所有元素。
通过以上步骤,我们可以得到S1和S2的交集新链表S3。如果交集序列为空,即S3中没有元素,则输出NULL。否则,将S3中的元素按照非降序输出即可。
举个例子,假设我们输入的两个序列分别是S1: 1 3 5 7 9 -1 和 S2: 2 4 5 6 8 10 -1。根据以上步骤,我们可以得到S3: 5。因此,输出结果为5。
希望以上解答对您有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [基于C++实现两个有序链表序列的交集【100012664】](https://download.csdn.net/download/s1t16/87877255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [7-2 两个有序链表序列的交集(简单解法,推荐)](https://blog.csdn.net/weixin_45989486/article/details/106031618)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文