赞
踩
题目:
题解:
- 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
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。