Leetcode 236 Lowest Common Ancestor of a Binary Tree
来源:互联网 发布:学生基本护肤步骤知乎 编辑:程序博客网 时间:2024/05/22 08:05
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).”
_______3______ / \ ___5__ ___1__ / \ / \ 6 _2 0 8 / \ 7 4
For example, the lowest common ancestor (LCA) of nodes 5
and 1
is 3
. Another example is LCA of nodes 5
and 4
is 5
, since a node can be a descendant of itself according to the LCA definition.
如果当前root 为null或者就是p q就return root
那么return的就是当前子树的祖先
如果说left和right都不为null说明pq分别在左右子树 此时return root
如果有一边为null return不为null的一边
全为null 直接return root
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if (root == null || root == p || root == q) return root; TreeNode left = lowestCommonAncestor(root.left, p, q); TreeNode right = lowestCommonAncestor(root.right, p, q); if(left == null && right == null){ return root; }else if(left != null && right != null){ return root; } else{ return left == null ? right : left; }} }
阅读全文
0 0
- 【LeetCode】236 Lowest Common Ancestor of a Binary Tree
- leetcode 236: Lowest Common Ancestor of a Binary Tree
- Leetcode 236 Lowest Common Ancestor of a Binary Tree
- LeetCode 236 Lowest Common Ancestor of a Binary Tree
- [Leetcode 236, Medium] Lowest Common Ancestor of a Binary Tree
- leetcode[236]:Lowest Common Ancestor of a Binary Tree
- Leetcode NO.236 Lowest Common Ancestor of a Binary Tree
- Leetcode #236 Lowest Common Ancestor of a Binary Tree
- [leetcode 236]Lowest Common Ancestor of a Binary Tree
- LeetCode 236 Lowest Common Ancestor of a Binary Tree
- [LeetCode 236] Lowest Common Ancestor of a Binary Tree
- LeetCode(236)Lowest Common Ancestor of a Binary Tree
- leetcode 236: Lowest Common Ancestor of a Binary Tree
- LeetCode 236: Lowest Common Ancestor of a Binary Tree
- 【LEETCODE】236-Lowest Common Ancestor of a Binary Tree
- LeetCode 236 Lowest Common Ancestor of a Binary Tree
- 【LeetCode-236】Lowest Common Ancestor of a Binary Tree
- leetcode 236Lowest Common Ancestor of a Binary Tree [python]
- HDU 3374 KMP-最小最大表示法的原理详解
- Mac之Security工具使用总结
- iOS 使用UITextField自动格式化银行卡号
- list集合增加时去重
- Python中取整的几种方法
- Leetcode 236 Lowest Common Ancestor of a Binary Tree
- Swift 中文手册
- iOS多线程中performSelector: 和dispatch_time的不同
- less的使用介绍(一)
- Mysql高版本脚本导入低版本报错
- TCP的3次握手和四次挥手
- 一个屌丝程序猿的人生(二十)
- ios GCD 用法
- 关于eclipse的debug模式,没有从自己定义的断点开始,而从一些java类开始的