Leetcode404.左葉子之和 Sum of Left Leaves(Java)
阿新 • • 發佈:2020-12-27
Leetcode404.左葉子之和 Sum of Left Leaves(Java)
##Tree##
左葉子之和
採用DFS方法,遞迴遍歷所有結點
- 判斷結點是否存在左兒子
- 判斷結點的左兒子結點是否為葉子結點
滿足條件則求和
不能直接判斷某結點是否為左兒子結點,要通過其父結點判斷
時間複雜度: O(n)
class Solution {
int sum = 0;
public int sumOfLeftLeaves(TreeNode root) {
if (root == null) return sum;
dfs (root);
return sum;
}
public void dfs(TreeNode root) {
if (root == null) return;
if (root.left != null && root.left.left == null && root.left.right == null) { //將1,2兩個判斷條件用&&並列
sum += root.left.val;
}
if (root.right != null) dfs(root.right);
if (root.left != null) dfs(root.left);
}
}