236. 二叉树的最近公共祖先

2022-07-11  本文已影响0人  邦_

递归其实很迷的在于。你不知道他在哪做的判断处理
其实判断处理在第一行= =。。


 func lowestCommonAncestor(_ root: TreeNode?, _ p: TreeNode?, _ q: TreeNode?) -> TreeNode? {
        if root == nil || root === p ||  root === q {
            return root
        }
      
        let left = lowestCommonAncestor(root?.left, p, q)
        let right = lowestCommonAncestor(root?.right, p, q)
        if (left != nil) && (right != nil) {
            return root
        }
        return left == nil ? right : left
    
    }




上一篇 下一篇

猜你喜欢

热点阅读