zoukankan      html  css  js  c++  java
  • 【LeetCode】104. Maximum Depth of Binary Tree (2 solutions)

    Maximum Depth of Binary Tree 

    Given a binary tree, find its maximum depth.

    The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

    Minimum Depth of Binary Tree对照看

    解法一:递归,子树高度+1。

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int maxDepth(TreeNode *root) {
            if(root == NULL)
                return 0;
            else
                return max(maxDepth(root->left), maxDepth(root->right)) + 1;
        }
    };

    解法二:深度优先遍历,栈的最大容量即最大深度

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int maxDepth(TreeNode *root) {
            if(root == NULL)
                return 0;
            stack<TreeNode*> stk;
            unordered_map<TreeNode*, bool> visited;
            stk.push(root);
            int ret = 1;
            visited[root] = true;
            while(!stk.empty())
            {
                TreeNode* top = stk.top();
                if(top->left && visited[top->left] == false)
                {
                    stk.push(top->left);
                    ret = max(ret, (int)stk.size());
                    visited[top->left] = true;
                    continue;
                }
                if(top->right && visited[top->right] == false)
                {
                    stk.push(top->right);
                    ret = max(ret, (int)stk.size());
                    visited[top->right] = true;
                    continue;
                }
                stk.pop();
            }
            return ret;
        }
    };

  • 相关阅读:
    es6 学习笔记3
    flex 子元素和父元素的高度相同问题
    vue 笔记2
    vue 子父组件之间的通信
    vue+webpack 错误笔记
    vue 学习新笔记
    mongoDB 使用学习笔记
    express 学习笔记
    多态
    static修饰符与final修饰符
  • 原文地址:https://www.cnblogs.com/ganganloveu/p/3811083.html
Copyright © 2011-2022 走看看