LeetCode404. 左叶子之和

计算给定二叉树的所有左叶子之和。

示例:

    3
   / \
  9  20
    /  \
   15   7

在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

 


思路:定义全局变量sum=0,深度优先遍历二叉树,当结点为左叶子结点时,sum加上该结点的值。(重点是判断该结点是左叶子结点)

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

你可能感兴趣的:(二叉树,java)