Lowest Common Ancestor of a Binary Tree|Java 최 단 코드 구현
860 단어 tree
236. Lowest Common Ancestor of a Binary Tree
[사고방식]
화해시키다 Lowest Common Ancestor of a Binary Tree 다른 건이 이 진 트 리 의 값 은 중복 되 고 노드 의 크기 순서 가 규칙 적 이지 않 으 면 깊이 로 옮 겨 다 닐 수 밖 에 없습니다.그러나 분명 한 것 은 p,q 노드 는 공동 조상 들 의 좌우 양쪽 에서 가장 낮 게 별거 하 는 것 이다(p 또는 q 자체 가 조상 을 제외).
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if (root == null) return null;
if (root == p || root == q) return root;
TreeNode leftSub = lowestCommonAncestor(root.left, p, q);
TreeNode rightSub = lowestCommonAncestor(root.right, p, q);
if (leftSub != null && rightSub != null) return root;
return leftSub != null ? leftSub : rightSub;
}
31 / 31 test cases passed. Runtime: 12 ms Your runtime beats 73.85% of javasubmissions.
최적화 환영 합 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이진 트리 가지치기이진 트리의 root가 주어지면 1을 포함하지 않는 (지정된 트리의) 모든 하위 트리가 제거된 동일한 트리를 반환합니다. 노드node의 하위 트리는 node에 node의 자손인 모든 노드를 더한 것입니다. 이 문제는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.