当前位置:   article > 正文

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

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

题目:

题解:

  1. func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
  2. parent := map[int]*TreeNode{}
  3. visited := map[int]bool{}
  4. var dfs func(*TreeNode)
  5. dfs = func(r *TreeNode) {
  6. if r == nil {
  7. return
  8. }
  9. if r.Left != nil {
  10. parent[r.Left.Val] = r
  11. dfs(r.Left)
  12. }
  13. if r.Right != nil {
  14. parent[r.Right.Val] = r
  15. dfs(r.Right)
  16. }
  17. }
  18. dfs(root)
  19. for p != nil {
  20. visited[p.Val] = true
  21. p = parent[p.Val]
  22. }
  23. for q != nil {
  24. if visited[q.Val] {
  25. return q
  26. }
  27. q = parent[q.Val]
  28. }
  29. return nil
  30. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/854816
推荐阅读
相关标签
  

闽ICP备14008679号