LeetCode OJ刷题历程——Maximum Depth of Binary Tree
2016-04-03 20:31
483 查看
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. Subscribe to see which companies asked this question
以上是题目要求,下面贴出代码:
/** * 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) { int left,right; if(root == NULL) return 0; left = maxDepth(root->left) + 1; right = maxDepth(root->right) + 1; return max(left,right); } };
此题考点为二叉树的深度优先遍历,利用递归最为容易理解。根的深度等于max(左子树和右子树的深度)+1,同时左子树的深度又可以用同样的公式来表示,因此可以用递归来求解。叶子节点的深度为1.
相关文章推荐
- 使用myeclipse开发Servlet
- python语言学习7——数据类型和变量
- 内核分析-第六周
- JavaScript之变量与常量
- 【BZOJ1588】【HNOI2002】营业额统计
- 文件的切割与合并
- Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflow
- 设计模式之设计原则-单一职责原则
- Linux系统创建一个新的进程
- 备忘
- nginx 配置web 虚拟文件夹 而且codeIgniter,thinkphp 重定向url 地址
- 2nd
- git学习小结
- 训练赛20160403
- App Resources and Resources Overview
- 在一个会话中产生多个连接
- LeetCode OJ刷题历程——Add Digits
- 进程的描述和进程的创建——第六周(20135304刘世鹏)
- Android开发 自定义popupwindow
- hdu 1518 Square【DFS+剪枝】