/** 1302. 层数最深叶子节点的和
* @author 作者 Your-Name:
* @version 创建时间:2020年3月2日 下午4:56:06
* 给你一棵二叉树,请你返回层数最深的叶子节点的和。
示例:
输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
输出:15
*/
public class 层数最深叶子节点的和 {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
int temp=0;
int maxtemp=-1;
int num=0;
public int deepestLeavesSum(TreeNode root) {
dfs(root,temp);
return num;
}
public void dfs(TreeNode root,int temp)
{
if(root==null)
return;
if(temp>maxtemp)
{
maxtemp = temp;
num = root.val;
}
else if(temp==maxtemp)
{
num += root.val;
}
dfs(root.left,temp+1);
dfs(root.right,temp+1);
}
}