zoukankan      html  css  js  c++  java
  • 《剑指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

    得解!

  • 相关阅读:
    include与php://input执行任意命令
    php Session反序列化漏洞
    php代码审计-file_get_contents()&file_put_contents()
    php代码审计-用户名和密码分开检验
    php -- get_magic_quotes_gpc()函数
    md5(“ffifdyop“,true)
    php弱类型相关
    BurpWeb安全学院之XXE
    ICMP隐藏通信隧道技术
    BurpWeb安全学院之敏感信息泄露
  • 原文地址:https://www.cnblogs.com/geeksongs/p/13520122.html
Copyright © 2011-2022 走看看