Golang | Leetcode Golang题解之第236题二叉树的最近公共祖先

题目:

题解:

func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
    parent := map[int]*TreeNode{}
    visited := map[int]bool{}

    var dfs func(*TreeNode)
    dfs = func(r *TreeNode) {
        if r == nil {
            return
        }
        if r.Left != nil {
            parent[r.Left.Val] = r
            dfs(r.Left)
        }
        if r.Right != nil {
            parent[r.Right.Val] = r
            dfs(r.Right)
        }
    }
    dfs(root)

    for p != nil {
        visited[p.Val] = true
        p = parent[p.Val]
    }
    for q != nil {
        if visited[q.Val] {
            return q
        }
        q = parent[q.Val]
    }

    return nil
}

相关推荐

  1. [力扣题解] 236. 最近公共祖先

    2024-07-15 06:54:03       29 阅读
  2. 236. 最近公共祖先

    2024-07-15 06:54:03       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 06:54:03       53 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 06:54:03       55 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 06:54:03       46 阅读
  4. Python语言-面向对象

    2024-07-15 06:54:03       56 阅读

热门阅读

  1. 软设之中介者模式

    2024-07-15 06:54:03       20 阅读
  2. Go语言指针及不支持语法汇总

    2024-07-15 06:54:03       20 阅读
  3. linux命令更新-iostat 和 iotop

    2024-07-15 06:54:03       18 阅读
  4. IOSUI自动化之mobiledevice

    2024-07-15 06:54:03       19 阅读
  5. Flask `before_request` 方法解析

    2024-07-15 06:54:03       25 阅读
  6. Hive常用内置函数合集

    2024-07-15 06:54:03       19 阅读
  7. ArrayList和LinkedList的区别

    2024-07-15 06:54:03       21 阅读
  8. 【python】数据类型和运算符

    2024-07-15 06:54:03       17 阅读
  9. 前端系列-5 SCSS使用介绍

    2024-07-15 06:54:03       23 阅读
  10. Flutter笔记--WebSocket

    2024-07-15 06:54:03       20 阅读
  11. MongoDB Shard 集群 Docker 部署

    2024-07-15 06:54:03       22 阅读
  12. 数据结构第27节 优先队列

    2024-07-15 06:54:03       19 阅读