国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【Leetcode】404. Sum of Left Leaves

2019-11-06 06:17:53
字體:
來源:轉載
供稿:網友

方法一:

思路:

大體上分為判斷有沒有左節點和有沒有右節點。

(1)如果有左節點,看左節點有沒有子節點,沒有(即左葉子節點)則直接用起值去加,有則繼續對左節點遞歸。

(2)如果有右節點,且右節點有子節點,則對右節點遞歸,否則不管是沒有右節點還是右節點沒有子節點(即右葉子節點)都直接看做加0。

需要注意的是:

(1)如果節點本身為0。

(2)如果根節點沒有子節點,也要返回0,因為題目要求左葉子節點,根節點不算。

(5)在判斷所有節點的子節點或者值之前,要對該節點本身是否為null做出判斷。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public int sumOfLeftLeaves(TreeNode root) {        if (root == null)            return 0;        if (root.left == null && root.right == null)             return 0;        return ((root.left != null && root.left.left == null && root.left.right == null) ? root.left.val : sumOfLeftLeaves(root.left)) + ((root.right != null && (root.right.left != null || root.right.right != null)) ? sumOfLeftLeaves(root.right) : 0);    }}

Runtime:9ms

方法二:

思路:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    PRivate int sum = 0;    public int sumOfLeftLeaves(TreeNode root) {        dfs(root, false);        return sum;    }    void dfs(TreeNode root, boolean left) {        if (root == null)             return;        if (root.left == null && root.right == null)            sum = left ? sum + root.val : sum;        dfs(root.left, true);        dfs(root.right, false);    }}

Runtime:8ms


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泽库县| 望城县| 太谷县| 哈巴河县| 旌德县| 建平县| 佛教| 南部县| 贵港市| 孝感市| 贵州省| 遂溪县| 新营市| 大宁县| 九寨沟县| 临朐县| 利津县| 莱阳市| 都安| 莱西市| 綦江县| 呼和浩特市| 吴忠市| 曲阜市| 天长市| 玛沁县| 侯马市| 塔河县| 云南省| 阿城市| 翁牛特旗| 遂溪县| 喜德县| 葵青区| 扶绥县| 谷城县| 潮安县| 长治县| 建瓯市| 奉节县| 平果县|