二叉树的最大深度(LintCode)
2015-11-05 12:35
435 查看
题目来源:LintCode
原题地址:http://www.lintcode.com/zh-cn/problem/maximum-depth-of-binary-tree/
题目:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的距离。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出一棵如下的二叉树:
这个二叉树的最大深度为
难度级别:
容易
思路分析:
遍历每个节点,返回该节点左右子树中深度较大的一个
实现代码:
代码说明:
需要注意的是,在返回值时,需要将左右子树的深度加1,这个代表此节点自己的位置。
如果没有+1操作,会得到错误的答案。
原题地址:http://www.lintcode.com/zh-cn/problem/maximum-depth-of-binary-tree/
题目:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的距离。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出一棵如下的二叉树:
1 / \ 2 3 / \ 4 5
这个二叉树的最大深度为
3.
难度级别:
容易
思路分析:
遍历每个节点,返回该节点左右子树中深度较大的一个
实现代码:
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ 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); int right = maxDepth(root->right); return (left > right) ? left + 1 : right + 1; } };
代码说明:
需要注意的是,在返回值时,需要将左右子树的深度加1,这个代表此节点自己的位置。
如果没有+1操作,会得到错误的答案。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- AVL树-自平衡二叉查找树(Java实现)
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例