两个有序链表序列的交集pta
时间: 2024-01-07 09:05:58 浏览: 207
两个有序链表序列的交集可以通过双指针法来求解。假设两个链表分别为list1和list2,我们可以使用两个指针指向list1和list2的头节点,并逐个比较节点的值。如果节点值相等,则将该值添加到结果列表中,并将两个指针都向后移动一位。如果节点值不相等,则将值较小的指针向后移动一位。直到其中一个链表遍历完毕,即可得到两个有序链表序列的交集。
下面是一个示例代码:
```python
def findIntersection(list1, list2):
ptr1, ptr2 = list1.head, list2.head
result = []
while ptr1 and ptr2:
if ptr1.val == ptr2.val:
result.append(ptr1.val)
ptr1 = ptr1.next
ptr2 = ptr2.next
elif ptr1.val < ptr2.val:
ptr1 = ptr1.next
else:
ptr2 = ptr2.next
return result
```
相关问题
pta 两个有序链表序列的交集
两个有序链表的交集可以通过遍历两个链表,比较节点的值来找到相同的节点,然后将相同的节点添加到结果链表中。具体的步骤如下:
1. 定义一个结果链表和两个指针,分别指向两个链表的头节点。
2. 使用循环遍历两个链表,直到其中一个链表遍历完成。
3. 在每一次循环中,比较当前节点的值,如果相等,则将该节点添加到结果链表中,并将两个指针都向后移动一位。
4. 如果当前节点的值不相等,则将值较小的节点的指针向后移动一位。
5. 继续进行循环,直到其中一个链表遍历完成。
6. 返回结果链表作为交集结果。
1-7 两个有序链表序列的交集
根据引用和引用的描述,输入的格式应为两行,每行分别是一个由若干个正整数构成的非降序序列,用-1表示序列的结尾。数字之间用空格间隔。
对于这个问题,我们需要找到两个有序链表的交集。根据引用中的描述,我们需要输出交集序列,数字之间用空格分开,结尾不能有多余空格;若交集为空,输出NULL。
根据题目给出的两个有序链表序列,我们可以通过比较两个链表的元素来找到它们的交集。
下面是求解交集的一种方法:
1. 定义两个指针分别指向两个链表的头部。
2. 初始化一个空的结果链表。
3. 当两个指针都不为空时,进行以下操作:
a. 如果两个指针指向的元素相等,将该元素添加到结果链表中,并且两个指针都向后移动一位。
b. 如果第一个指针指向的元素小于第二个指针指向的元素,将第一个指针向后移动一位。
c. 如果第一个指针指向的元素大于第二个指针指向的元素,将第二个指针向后移动一位。
4. 返回结果链表。
根据这个方法,我们可以得到1-7两个有序链表序列的交集。
阅读全文