zoukankan      html  css  js  c++  java
  • 剑指Offer的学习笔记(C#篇)-- 二叉树的深度(详讲递归)

    题目描述

    输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

    一 . 思维发散

            借助这个题目,我想用一个更好理解的方法说一说递归。借助数学上的小括号来更好的理解递归,我做过小学生家教,记得这应该是小学四年级的题目(符号的计算顺序)。直接上图吧。

            也许写的不够严谨,但传达的思想没有错,同样采用的是举例法,假设需要递归的函数是法 f(),递归一次就在相应的位置插上一个f(),全部搞定后就变成一个如上图所示的那个了,接下来就是计算顺序咯,不会的话,看一看小学四年级数学,应该会有帮助。

    二 . 代码实现

    class Solution
    {
        public int TreeDepth(TreeNode pRoot)
        {
            // write code here
            //鲁棒判断
            if (pRoot == null)
            {
            return 0;
            }
            //左右递归
            int left = TreeDepth(pRoot.left);
            int right = TreeDepth(pRoot.right);
            //加一运算
            return System.Math.Max(left,right)+1;
        }
    }
  • 相关阅读:
    parser_url
    fsockopen
    MySql支持的数据类型
    MySql常用字符集
    MySQL各大存储引擎
    MySql数据库基础
    Python 流程控制 超全解析(不可错过)
    python 序列解包(解压缩)
    python常量 (最全常量解析)
    python内存管理(通俗易懂,详细可靠)
  • 原文地址:https://www.cnblogs.com/WeiMLing/p/11055570.html
Copyright © 2011-2022 走看看