自学内容网 自学内容网

404.左叶子之和

给定二叉树的根节点 root ,返回所有左叶子之和。

深度优先遍历:

时间复杂度:O(n)

空间复杂度:O(n),与栈的最大深度相关,最坏情况下,树呈链式结构,深度为n

class Solution{
    public int sumLeftLeaves(TreeNode root){
        return root == null ? dfs(root) : 0;
    }
    public int dfs(TreeNode node){
        int sum = 0;
        if(node.left != null){
            sum += isLeftLeaf(node.left) ? node.left.val : dfs(node.left);
        }
        if(node.right != null && !isLeftLeaf(node.right)){
            // 如果node.right是叶子,就不能再进入这个判断中
            sum += dfs(node.right);
        }
        return sum;
    }
    public boolean isLeftLeaf(TreeNode node){
        return node.left == null && node.right == null;
    }
}


原文地址:https://blog.csdn.net/argcargv/article/details/137719675

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!