Leetcode, MaximumDepthOfBinaryTree
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
struct TreeNode
{
int _val;
TreeNode *_left;
TreeNode *_right;
TreeNode(int x) : _val(x), _left(nullptr), _right(nullptr) { }
};
//时间复杂度O(n),空间复杂度O(logn)
int solution(TreeNode *root)
{
if (root == nullptr) return 0;
return 1 + max(solution(root->_left), solution(root->_right));
}
int main()
{
{
TreeNode *node1 = new TreeNode(3);
TreeNode *node2 = new TreeNode(9);
TreeNode *node3 = new TreeNode(20);
TreeNode *node4 = new TreeNode(15);
TreeNode *node5 = new TreeNode(7);
node1->_left = node2;
node1->_right = node3;
node3->_left = node4;
node3->_right = node5;
cout << solution(node1) << endl; //3
}
{
TreeNode *node1 = new TreeNode(1);
TreeNode *node2 = new TreeNode(2);
TreeNode *node3 = new TreeNode(3);
TreeNode *node4 = new TreeNode(4);
TreeNode *node5 = new TreeNode(5);
node1->_right = node2;
node2->_right = node3;
node3->_right = node4;
node4->_right = node5;
cout << solution(node1) << endl; //5
}
system("pause");
return 0;
}