标签:
Find the sum of all left leaves in a given binary tree.
Example:
3 / 9 20 / 15 7 There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
思路:到leaf的时候判断是不是left leaf。用一个boolean function来记录搜索的是左枝还是右枝。
/** * 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; } public 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); } }
标签:
原文地址:http://www.cnblogs.com/Machelsky/p/5914974.html