二叉树最大深度

题目:

  给定一个二叉树,找出其最大深度。

  二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

  说明: 叶子节点是指没有子节点的节点。

递归,深度遍历:

var maxDepth = function(root) {
    if(!root)    return 0;
    let left = maxDepth(root.left)
    let right = maxDepth(root.right)
    return Math.max(left,right) + 1
};

BFS:

var maxDepth = function(root) {
    //非递归 广度遍历 BFS,使用队列
    if(!root)   return 0;
    const arr = []
    arr.push(root)
    let n = 0;
    while(arr.length){
        let size = arr.length
        for(let i = 0;i<size;i++){
            let node = arr.shift()
            if(node.left !=null)   arr.push(node.left)
            if(node.right !=null)   arr.push(node.right)
        }
        n++
    }
    return n
};

 

 

posted @ 2021-03-01 19:34  Jiox  阅读(86)  评论(0)    收藏  举报