zoukankan      html  css  js  c++  java
  • 相交链表-基于Go

    • 一般思路
      • 先遍历A链表,记录所有点
    • 再遍历B链表,若已经在记录中存在则返回该节点.
    /**
     * Definition for singly-linked list.
     * type ListNode struct {
     *     Val int
     *     Next *ListNode
     * }
     */
    type void struct{}
    
    func getIntersectionNode(headA, headB *ListNode) *ListNode {
        if headA==nil||headB==nil{
            return nil
        }
    
        var nodes = make(map[*ListNode]void)
        for headA!=nil{
            _, ok := nodes[headA]
            // 说明node不经存在
            if !ok{
                nodes[headA] = void{}
            }
            headA = headA.Next
        }
        for headB!=nil{
            _, ok := nodes[headB]
            // 说明node已经存在
            if ok{
                return headB
            }
            headB = headB.Next
        }
        return nil
    }
    
    • 分别计算链长度,链表头移动到同一起点,同时遍历,相同则相交
    /**
     * Definition for singly-linked list.
     * type ListNode struct {
     *     Val int
     *     Next *ListNode
     * }
     */
    
    func getIntersectionNode(headA, headB *ListNode) *ListNode {
        if headA==nil||headB==nil{
            return nil
        }
    
        var lenA = 0
        var lenB = 0
        // 分别计算链表长度 
        for p := headA; p!=nil; p=p.Next{
            lenA++
        }
        for p := headB; p!=nil; p=p.Next{
            lenB++
        }
    
        // 将链表头移动到同一起点
        if lenA>=lenB{
            for i:=0;i<lenA-lenB;i++{
                headA = headA.Next
            }
        }else{
            for i:=0;i<lenB-lenA;i++{
                headB = headB.Next
            }
        }
    
        // 同时遍历,相等则相交
        for headA!=nil{
            if headA==headB{
                return headA
            }
            headA = headA.Next
            headB = headB.Next
        }
        
        return nil
    }
    
  • 相关阅读:
    centos7 mongodb3.4 安装
    centos7 开放端口号
    Junit4测试Spring
    selenium浏览器内核监测处理
    mitmproxy(TLS错误)
    爬虫计算两张验证图片的距离(情况一)
    git的git bash使用
    算法
    RBAC权限管理设计
    beego框架返回json数据
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14632410.html
Copyright © 2011-2022 走看看