leetcode 160剑指offer面试题52. 两个链表的第一个公共节点(python3)

面试题52. 两个链表的第一个公共节点
输入两个链表,找出它们的第一个公共节点。
leetcode 160剑指offer面试题52. 两个链表的第一个公共节点(python3)_第1张图片
leetcode 160剑指offer面试题52. 两个链表的第一个公共节点(python3)_第2张图片
注意:

如果两个链表没有交点,返回 null.
在返回结果后,两个链表仍须保持原有的结构。
可假定整个链表结构中没有循环。
程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。
本题与主站 160 题相同:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/
参考视频:https://www.bilibili.com/video/av46297857?from=search&seid=3425539323744682331

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
        p1 , p2 = headA , headB
        while p1 != p2:
            if not p1:
                p1 = headB
            else:
                p1 = p1.next
            if not p2:
                p2 = headA
            else:
                p2=p2.next
        return p1

你可能感兴趣的:(leetcode刷题,剑指offer)