zoukankan      html  css  js  c++  java
  • 236. Lowest Common Ancestor of a Binary Tree

    package LeetCode_236
    
    /**
     * 236. Lowest Common Ancestor of a Binary Tree
     * https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/
     * https://www.geeksforgeeks.org/lowest-common-ancestor-binary-tree-set-1/
     * */
    class TreeNode(var `val`: Int = 0) {
        var left: TreeNode? = null
        var right: TreeNode? = null
    }
    
    class Solution {
        fun lowestCommonAncestor(root: TreeNode?, p: TreeNode?, q: TreeNode?): TreeNode? {
            if (root==null){
                return null
            }
            if (root.`val` == p?.`val` || root.`val` == q?.`val`) {
                return root
            }
            val left = lowestCommonAncestor(root?.left, p, q)
            val right = lowestCommonAncestor(root?.right, p, q)
            // If both of the above calls return Non-NULL, then one key
            // is present in once subtree and other is present in other,
            // So this node is the LCA
            if (left != null && right != null) {
                return root
            }
            if (left != null) {
                return left
            } else {
                return right
            }
        }
    }
  • 相关阅读:
    React网络请求fetch之get请求
    英语学习
    人物传记
    四月
    启程
    情绪
    办公新址
    孩子大了
    幸福的生日
    hibernate---树状映射
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/12934583.html
Copyright © 2011-2022 走看看