使用递归解决此类问题,可以首先分析问题及其拆解,这里面可以将求叶子节点的和拆解为求左子树叶子节点和与求右子树的叶子节点和,然后分析递归出口,这里即访问到叶子节点退出,返回叶子节点本身的值。
class Solution{
public int leafsum(TreeNode root){
if(root == null){
return 0;
}
if(root.left == null && root.right == null){
return root.val;
}
return leafsum(root.left) + leafsum(root.right);
}
}