题目描述

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

解题思路

这里我才用的是前序遍历,我们在遍历的时候因为是要手机左叶子节点,所以我们就不能等到遍历当前节点的时候再去做判断,应该遍历到一个节点的时候就对其下一个节点的左右子树进行判断,这样才能确保我们得到的是我们的左叶子节点

代码实例

class Solution {
    int count=0;

    public int sumOfLeftLeaves(TreeNode root) {
        bianli(root);
        return count;
    }
    
    public void bianli(TreeNode root){
        if(root==null){
            return;
        }
		//当前节点的下一个节点的左右孩子节点进行判断
        if(root.left!=null){
            if(root.left.left==null && root.left.right==null){
                count+=root.left.val;
            }
        }
        bianli(root.left);
        bianli(root.right);
    }

}