二叉树——104. 二叉树的最大深度

二叉树——104. 二叉树的最大深度

题目:

二叉树——104. 二叉树的最大深度

思路:

还是老样子,就是看你用BFS还是DFS。

DFS:递归层数较大时有风险。就是递归,然后看左子树和右子树的maxdepth然后别忘了加1。

BFS:和右视图差不多,还是借助队列存放一层元素,还要设置个变量depth记录层数。这里我们选择BFS

代码:

class Solution {
public:
    int maxDepth(TreeNode* root) {
        if(root == NULL) return 0;
        queue<TreeNode*> que;
        que.push(root);
        int depth = 0;
        while(!que.empty()){
            int size = que.size();
            // 层数加一
            depth++;
            for(int i=0;i<size;i++){
                TreeNode* node = que.front();
                que.pop();
                if(node->left) que.push(node->left);
                if(node->right) que.push(node->right);
            }
        }
        return depth;
    }
};

Rank:

二叉树——104. 二叉树的最大深度

Tips:

上一篇:浅谈迭代加深(iddfs)


下一篇:OpenCV boundingRect、minAreaRect的用法区别