最强解析面试题:无环链表相交

Posted 魏小言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:无环链表相交相关的知识,希望对你有一定的参考价值。

目录

无环链表相交

题目

思路

代码

附录


无环链表相交

题目

如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回null。

思路

双指针,分别遍历两个链表,若有相交节点,则会在遍历第二个链表时校验出;方法返回的是相交节点。

关注我 code 杂坛,了解更多......

代码


package main


import "fmt"


func main () 

    a:=new(ListNode)

    a.Val = 0

    b:=new(ListNode)

    b.Val = 1

    c:=new(ListNode)

    c.Val = 2


    d:=new(ListNode)

    d.Val = 3

    e:=new(ListNode)

    e.Val = 4


    a.Next= b

    b.Next = c

    c.Next = e


    d.Next = e

    fmt.Println("hello https://tool.lu/",IsSame(a,d))



type ListNode struct

    Val int

    Next *ListNode



func IsSame(a,b *ListNode) *ListNode

    if a == nil || b == nil

        return nil

    

    s,f:=a,b

    for s != f

        if s == nil

            s = b

        else

            s = s.Next

        

        if f == nil

            f = a

        else

            f = f.Next

        

    

    return s

附录

除了流动,还需要拉动,拉动才是服务产品的根本价值。

关注我 code 杂坛,了解更多......

以上是关于最强解析面试题:无环链表相交的主要内容,如果未能解决你的问题,请参考以下文章

最强解析面试题:合并两个排序的链表

最强解析面试题:如何判断链表是否存在环?

最强解析面试题:如何判断链表是否存在环?

最强解析面试题:Goland 实现LRU算法

判断两个单链表是否相交

最强解析面试题:从尾到头打印链表「建议收藏!」