求二叉树的所有末级左节点的值的和

来源:互联网 发布:制衣打飞软件 编辑:程序博客网 时间:2024/06/07 07:38

题目:Sum of Leaves

描述:

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.

翻译:

这儿有2个末级左子节点,值分别为9和15,它们的和是24

答案:

/** * 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) {        int sum = 0;        if (root == null)            return sum;        TreeNode node = root.left;        if (node != null) {            if (node.left == null && node.right == null)                sum += node.val;            else                sum += sumOfLeftLeaves(node);        }        sum += sumOfLeftLeaves(root.right);        return sum;    }}

算法说明:

利用递归,将末级左节点找到,并将值累加

0 0
原创粉丝点击