二叉树在学习数据结构中的重要性就不言而喻了,这儿简单记录一下自己碰到的一些关于二叉树的常见操作。当然要明确解决这些问题的“根节点思路”了————递归递归recursion。
二叉树的最大深度与最小深度
最大深度是指二叉树根节点到该树叶子节点的最大路径长度。而最小深度自然就是其到叶子节点的最小路径长度了。
**主要思路:**采用二叉树递归的思想,自底向上,当到达叶子节点时,自然达到了“递归边界”,而叶子节点的子节点自然为NULL,也就是深度为0,所以叶子节点的深度自然就是0+1=1了,以此向上累加,并且判断最大值,自然就得到了其最大深度。
最大深度例题
二叉树的最大深度:给定一个二叉树,找出其最大深度。
思路如上,具体实现如下:
int res=1;
int maxDepth(TreeNode* root) {
if(root==NULL)
return 0;
int d1=maxDepth(root->left);
int d2=maxDepth(root->right);
return max(d1,d2)+1;
}