二叉树的深度

输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。

例如:

给定二叉树 [1,5,28,null,null,10,7],

    1
   / \
  5 28
    /  \
  10   7
返回它的最大深度 3 。


  public class TreeNode {
      int val;
      TreeNode left;
      TreeNode right;
      TreeNode(int x) { val = x; }
  }
 
class main{
    LinkedList<List<Integer>> res = new LinkedList<>();
    LinkedList<Integer> path  = new LinkedList<>();//路径
    public int Depth(TreeNode root) {
        dfs(root);
        int size=0;
       for(List<Integer> list : res){
           
           size=size>list.size()?size:list.size();
       }
       return size;
    }
    void dfs(TreeNode node){
        if(node==null) return;
        path.add(node.val);
        if(node.left==null&&node.right==null){
         res.add(new LinkedList(path));
        }
        dfs(node.left);
         dfs(node.right);
         path.removeLast();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值