Leetcode Java Sum of Left Leaves
업데이트:
문제
코드
class Solution {
public int sumOfLeftLeaves(TreeNode root) {
return this.recursive(root, false);
}
private int recursive(TreeNode root, boolean isLeft) {
if (root == null) {
return 0;
} else {
if (root.left == null && root.right == null) {
return isLeft ? root.val : 0;
} else {
return this.recursive(root.left, true) + this.recursive(root.right, false);
}
}
}
}
결과
설명
-
주어진 이진 트리인 root의 좌측 노드의 합을 계산하는 문제이다.
-
3번에서 정의한 recursive(TreeNode root, boolean isLeft) 메서드의 결과를 주어진 문제의 결과로 반환한다.
-
재귀 호출을 이용하여 root의 좌측 노드의 합만 계산하기 위한 recursive(TreeNode root, boolean isLeft) 메서드를 정의한다.
- root가 null인 경우 좌측 노드가 없으므로, 0을 반환한다.
- root가 null이 아닌 경우, 아래를 수행한다.
- root의 left와 right 노드가 없을 경우, 해당 노드가 left 노드인 경우 root의 val 값을 아니면 0을 반환한다.
- root의 left 혹은 right 노드가 있을 경우, root의 left와 right 노드를 각각 재귀 호출 수행하여 합한 값을 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기