力扣第1302题:层数最深的叶子节点(DFS算法)

Posted 少๑渊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣第1302题:层数最深的叶子节点(DFS算法)相关的知识,希望对你有一定的参考价值。

一、题目内容

 二、题目分析

        很简单的题目,通过dfs获取树的高度,然后再判断当前叶子节点高度是否等于树的高度,是就让结果值加上叶子节点的值,否则就遍历左右子树。

三、代码

        

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    static int ans=0;
    public int deepestLeavesSum(TreeNode root) {
        int h=height(root);
        System.out.print(h);
        dfs(root,1,h);
        return ans;
    }
    public int height(TreeNode root)
    {
        if(root.left!=null&&root.right==null)
            return height(root.left)+1;
        else if(root.left==null&&root.right!=null)
            return height(root.right)+1;
        else if(root.left!=null&&root.right!=null)
            return Math.max(height(root.left)+1,height(root.right)+1);
        else return 1;
    }
    public void dfs(TreeNode root,int nowh,int h){
        if(nowh==h){
            ans+=root.val;
            return;
        }
        if(root.left!=null)
            dfs(root.left,nowh+1,h);
        if(root.right!=null)
            dfs(root.right,nowh+1,h);    
            
    }
}

以上是关于力扣第1302题:层数最深的叶子节点(DFS算法)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 1302. 层数最深叶子节点的和

LeetCode 1302 层数最深叶子节点的和[BFS DFS] HERODING的LeetCode之路

LeetCode 1302. 层数最深叶子节点的和

1302. 层数最深叶子节点的和

1302. 层数最深叶子节点的和

1302. 层数最深叶子节点的和