LeetCode 404題是“Sum of Left Leaves”,要求計算二元樹中所有左葉子節點的和
題目描述
給定一棵二元樹的根節點,返回所有左葉子的總和。
左葉子是指作為另一個節點的左子節點的葉子並且該節點沒有子節點。
解題想法
1.我們需要遍歷整個二元樹。
2.當我們遇到一個左葉子節點時,將其值加入到總和中。
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
// 定義樹的節點結構
public class Solution {
public int sumOfLeftLeaves(TreeNode root) {
// 輔助函數
return helper(root, false);
}
private int helper(TreeNode node, boolean isLeft) {
if (node == null) {
return 0;
}
if (node.left == null && node.right == null) {
// 如果是左子樹,則返回他的值;否則返回0
return isLeft ? node.val : 0;
}
// 計算左子樹和
return helper(node.left, true) + helper(node.right, false);
}
}