0
点赞
收藏
分享

微信扫一扫

两个链表的第一个公共节点

悬灸人雪洋 2022-03-11 阅读 56
leetcode

输入两个链表,找出它们的第一个公共节点。

如下面的两个链表:leedcode地址

a1->a2->a3
          \
           ->a4(b3)->a5(b4)
          /
    b1->b2

第一次循环:b先结束,到了a4和b4,接下来一步到了a5和a1
第二次循环:(从b1、a2开始)这是同时到a4和b3,结束

a1->a2->a3->a4
        	  \
         	  ->a5(b3)->a6(b4)
        	  /
 	   b1->b2

第一次循环:b先结束,到了a4和b4,接下来一步到了a5和a1
第二次循环:(从b1、a3开始)这是同时到a5和b3结束

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

class Solution(object):
    def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        node, node1 = headA, headB
        while node != node1:
            node = node.next if node else headB
            node1 = node1.next if node1 else headA

        return node
举报

相关推荐

0 条评论