Maximum Depth of Binary Tree

来源:互联网 发布:基于php技术的视频直播 编辑:程序博客网 时间:2024/04/30 19:09

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.


应该有很多方法吧。

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) {        int depth = 0;        queue<TreeNode *> level;        if(root != NULL)            level.push(root);        while(!level.empty()) {            depth ++;            // Build the new level            queue<TreeNode *> newlevel;            while(!level.empty()) {                TreeNode *front = level.front();                level.pop();                if(front->left != NULL)                    newlevel.push(front->left);                if(front->right != NULL)                    newlevel.push(front->right);            }            level = newlevel;        }        return depth;    }};

2.

/** * 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;                int leftdepth = maxDepth(root->left);        int rightdepth = maxDepth(root->right);                return leftdepth > rightdepth ? leftdepth + 1 : rightdepth + 1;    }};



0 0
原创粉丝点击