剑指Offer的学习笔记(C#篇)-- 二叉树的深度(详讲递归)
2024-08-23 14:35:24
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
一 . 思维发散
借助这个题目,我想用一个更好理解的方法说一说递归。借助数学上的小括号来更好的理解递归,我做过小学生家教,记得这应该是小学四年级的题目(符号的计算顺序)。直接上图吧。
也许写的不够严谨,但传达的思想没有错,同样采用的是举例法,假设需要递归的函数是法 f(),递归一次就在相应的位置插上一个f(),全部搞定后就变成一个如上图所示的那个了,接下来就是计算顺序咯,不会的话,看一看小学四年级数学,应该会有帮助。
二 . 代码实现
class Solution
{
public int TreeDepth(TreeNode pRoot)
{
// write code here
//鲁棒判断
if (pRoot == null)
{
return ;
}
//左右递归
int left = TreeDepth(pRoot.left);
int right = TreeDepth(pRoot.right);
//加一运算
return System.Math.Max(left,right)+;
}
}
最新文章
- .net 将List序列化成Json字符串
- ipsec IP安全策略操作 win7
- 模拟placeholder支持ie8以下处理了密码框只读的问题
- zabbix 微信报警
- Python入门笔记(25):Python面向对象(2)
- Python easy_install
- 关于java.lang.NullPointerException: Module 'null' not found.的问题
- 关于ThinkPHP控制器的方法失效的问题
- 转:python中函数curry化
- oschina娱乐游戏
- CWnd中PreCreateWindow、PreSubclassWindow、SubclassWindow的区别
- caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记
- 第十三届东北师范大学程序设计竞赛热身赛 C(exgcd+欧拉函数)
- github下载项目代码到本地,不能运行 本地改完代码 再上传
- BigDecimal用法总结
- Tensorflow张量
- C# Invoke方法
- 雷林鹏分享:XML 实例
- 6、申请发布(Distribution)证书和描述文件
- UVa 1603 破坏正方形