1. 程式人生 > 其它 >Leetcode404.左葉子之和 Sum of Left Leaves(Java)

Leetcode404.左葉子之和 Sum of Left Leaves(Java)

技術標籤:刷題leetcode二叉樹

Leetcode404.左葉子之和 Sum of Left Leaves(Java)

##Tree##

左葉子之和

採用DFS方法,遞迴遍歷所有結點

  1. 判斷結點是否存在左兒子
  2. 判斷結點的左兒子結點是否為葉子結點

滿足條件則求和

不能直接判斷某結點是否為左兒子結點,要通過其父結點判斷

時間複雜度: 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); } }