【LeetCode】236.Lowest Common Ancestor of a Binary Tree(Medium)解题报告
2018-03-11 10:10
405 查看
【LeetCode】236.Lowest Common Ancestor of a Binary Tree(Medium)解题报告
题目地址:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/
题目描述:
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).”
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.
求二叉树的最近公共祖先
Solution:
Date:2018年3月11日
题目地址:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/
题目描述:
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.
求二叉树的最近公共祖先
Solution:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } 采用后序遍历 time:O(n) space:O(n) */ 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; } return left == null ? right : left; } }
Date:2018年3月11日
相关文章推荐
- 【LeetCode】Lowest Common Ancestor of a Binary Search Tree 解题报告
- 【LeetCode】235.Lowest Common Ancestor of a Binary Search Tree(Easy)解题报告
- [Leetcode] 235. Lowest Common Ancestor of a Binary Search Tree 解题报告
- Leetcode 236. Lowest Common Ancestor of a Binary Tree (Medium) (cpp)
- [Leetcode] 236. Lowest Common Ancestor of a Binary Tree 解题报告
- (medium)LeetCode 236.Lowest Common Ancestor of a Binary Tree
- [leetcode] 236. Lowest Common Ancestor of a Binary Tree 解题报告
- LeetCode-Lowest Common Ancestor of a Binary Search Tree-解题报告
- [leetcode] 235. Lowest Common Ancestor of a Binary Search Tree 解题报告
- LeetCode:M-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, Medium] 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 -- JavaScript 代码
- LeetCode 236. Lowest Common Ancestor of a Binary Tree