二叉树的深度
来源:互联网 发布:金山毒霸软件 编辑:程序博客网 时间:2024/05/02 01:31
求二叉树深度是一个基本的算法,解决的思路如下:
1. 根据二叉树的非递归遍历,设置两个记录变量“观察”栈的深度变化:real_depth是栈真正的深度,cur_depth是当前栈的深度。对每个节点进行遍历,如果cur_depth大于real_depth则更新real_depth。
2. 利用递归求解。树的深度为其左右子树中较大者的深度加1。思想很好理解,代码也简单。
以下代码为递归求解:
* Definition for a binary tree node. * 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) return 0; return 1 + max(maxDepth(root->left), maxDepth(root->right)); }};
0 0
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- 二叉树的深度
- hdu 5532 Almost Sorted Array 2015 长春区域赛 模拟
- Android性能优化典范 - 第2季
- Wireshark入门:第一次亲密接触
- Java 导出CSV文件及实现web下载CSV
- java/oracle日期处理
- 二叉树的深度
- Android性能优化典范 - 第3季
- 二分查找
- Gulp
- 冒泡法排序
- Material System结构
- Android内存优化之OOM
- android四大组件学习之-Service的使用
- App上线步骤