• 《剑指offer》面试题13:两个链表的第一个公共节点


    题目描述

    输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
     

    题目解析:

    这道题是什么意思呢?如下图所示:

     其中上面的为第一个链表,下面的为第二个链表,它们的公共结点指的就是它们结合之处的那个共同的节点。我们可以先将两个链表的Node分别放到不同的list列表里,然后对这两个列表里的Node进行遍历,发现如果正好有两个Node的数值和指向都是相同的的话就查找成功。因为一个Node想要相同的话,需要具有两个条件,一个条件是:

    1.Node当中的数值相同

    2.Node当中的指向的是同一个节点

    因此代码如下所示:

    class Solution:
        def FindFirstCommonNode(self, pHead1, pHead2):
            # write code here
            list_node_one=[]
            list_node_two=[]
            while pHead1:
                list_node_one.append(pHead1)
                pHead1=pHead1.next
                
            while pHead2:
                list_node_two.append(pHead2)
                pHead2=pHead2.next
            #如果是同一个节点,那么这个节点储存的下一个节点的地址以及节点里面的值相同
            for i in list_node_one:
                for j in list_node_two:
                    if i.val==j.val and i.next==j.next:
                        return i
            return None

    得解!

  • 相关阅读:
    MySQL锁(阻塞)
    MySQL锁类型(一致性是非锁定读、自增和外键)
    MySQL锁算法(行锁的三种算法以及解决幻读问题)
    MySQL锁概述
    MySQL锁问题(脏读、不可重复读、幻读)
    MySQL默认隔离级别对应解决的三种问题
    简单动态字符串
    限流
    # SpringBoot自定义线程池
    & 生产环境mysql问题记录
  • 原文地址:https://www.cnblogs.com/geeksongs/p/13520122.html
Copyright © 2020-2023  润新知