Lintcode: Lowest Common Ancestor
4264 단어 code
Given the root and two nodes in a Binary Tree. Find the lowest common ancestor(LCA) of the two nodes.
The lowest common ancestor is the node with largest depth which is the ancestor of both nodes.
Example
4
/ \
3 7
/ \
5 6
For 3 and 5, the LCA is 4.
For 5 and 6, the LCA is 7.
For 6 and 7, the LCA is 7.
더 복잡한 참조: http://www.cnblogs.com/EdwardLiu/p/4265448.html
1 public class Solution {
2 /**
3 * @param root: The root of the binary search tree.
4 * @param A and B: two nodes in a Binary.
5 * @return: Return the least common ancestor(LCA) of the two nodes.
6 */
7 public TreeNode lowestCommonAncestor(TreeNode root, TreeNode A, TreeNode B) {
8 // write your code here
9 if (root == null) return null;
10 if (root==A || root==B) return root;
11 TreeNode lch = lowestCommonAncestor(root.left, A, B);
12 TreeNode rch = lowestCommonAncestor(root.right, A, B);
13 if (lch!=null && rch!=null) return root;
14 return lch==null? rch : lch;
15 }
16 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
소스 코드가 포함된 Python 프로젝트텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.