2020-11-04二叉树深度

二叉树的深度

输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
题解
1、递归深度遍历
根节点若为空节点高度为0,非空遍历左节点和有节点,查看左右节点的高度,取最大值+1 则为该节点深度

class Solution {
    public int maxDepth(TreeNode root) {
        if (root == null){

                return 0;
        } 
        return Math.max(maxDepth(root.left),maxDepth(root.right))+1;
    }
}
/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxDepth = function(root) {
    if(root === null){
        return 0;
    }
    return Math.max(maxDepth(root.left),maxDepth(root.right))+1;

};

2、层序遍历
1、若根为空返回高度为0
2、若不为空,将根节点存储在数组中,
3、若根数组不为空,
4、遍历左节点和右节点,将左右节点放在另一个数组中,
5、将每层左右节点数组赋值给根节点数组,层数加1,做为下一次检验的根数组
6、重复3之后操作,直至根数组为空,输出层数。

class Solution {
    public int maxDepth(TreeNode root) {
        if (root == null){    return 0;} 
        int res = 0;
        List<TreeNode> tree = new LinkedList<>();
        tree.add(root);
        while(!tree.isEmpty()){
              List<TreeNode> temp  = new LinkedList<>();
            for(TreeNode node : tree){
                 if(node.left != null){
                    temp.add(node.left);
                 }
                 if(node.right != null){
                 temp.add(node.right);
                }
            }
             tree = temp;
            res++;
        }
    return res;
        
    }
}
var maxDepth = function(root) {
    if(root === null){
        return 0;
    }
    let tree = [root];
    let res = 0;
    while (tree.length){
        let temp = [];
        for(let i = 0;i<tree.length;i++){
            if(tree[i].left) temp.push(tree[i].left);
            if(tree[i].right) temp.push(tree[i].right);
        }
        tree = temp;
        res++;
    }
    return res;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值