maximum-depth-of-binary-tree 1.0.0
Maximum Depth of Binary Tree
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1#include <bits/stdc++.h>
2
3using namespace std;
4
5struct TreeNode
6{
7 int val;
10 TreeNode() : val(0), left(nullptr), right(nullptr) {}
11 TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
13};
14
16{
17public:
18 int maxDepth(TreeNode* root)
19 {
20 if (!root)
21 return 0;
22 queue<pair<TreeNode*, int>> q;
23 q.push({root, 1});
24 int level = 0;
25 while (!q.empty())
26 {
27 TreeNode* t = q.front().first;
28 level = max(level, q.front().second);
29 q.pop();
30
31 if (t->left)
32 q.push({t->left, level + 1});
33 if (t->right)
34 q.push({t->right, level + 1});
35 }
36 return level;
37 }
38};
39
40int main()
41{
42 TreeNode* root = new TreeNode(1, nullptr, new TreeNode(2));
43 cout << "max depth: " << Solution().maxDepth(root) << '\n';
44 delete root->right;
45 delete root;
46 return 0;
47}
int maxDepth(TreeNode *root)
Definition main.cpp:18
int main()
Definition main.cpp:40
int val
Definition main.cpp:7
TreeNode * left
Definition main.cpp:8
TreeNode(int x, TreeNode *left, TreeNode *right)
Definition main.cpp:12
TreeNode * right
Definition main.cpp:9
TreeNode(int x)
Definition main.cpp:11
TreeNode()
Definition main.cpp:10