在接触二叉树以前,先回顾一下二叉树的几个性质:
1.节点个数为A, 总度数为B,因为除了根节点,每个节点都有一个入度,所以
A=B+ 1
2.总度数=2 * n_2 + n_1(n_2和n_1分别是度为2和度为1的节点数),又因为
A = n_2 + n_1 + n_0,所以有n_2 + n_1 + n_0 = 2 * n_2 + n_1 + 1
所以n2 + 1 = n_0
3.树的深度:即节点所在的层数,根为第一层
题目内容:
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.
看到九章上面一个很惊艳的解法:
class Solution {
public:
/**
* @param root: The root of binary tree.
* @return: An integer
*/
int maxDepth(TreeNode *root) {
if (root == NULL) {
return 0;
}
int left = maxDepth(root->left) + 1;
int right = maxDepth(root->right) + 1;
return left > right ? left: right;
}
};