【剑指Offer】二叉树的深度 解题报告(Python & C++)
2024-09-05 21:07:07
作者: 负雪明烛
id: fuxuemingzhu
个人博客: http://fuxuemingzhu.cn/
题目地址:https://www.nowcoder.com/ta/coding-interviews
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
解题方法
找到左右子树最大深度+1即可,递归的终止条件是空节点的深度是0。
Python代码:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def TreeDepth(self, pRoot):
if not pRoot: return 0
left = self.TreeDepth(pRoot.left)
right = self.TreeDepth(pRoot.right)
return max(left, right) + 1
C++代码如下:
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
int TreeDepth(TreeNode* pRoot)
{
if (!pRoot) return 0;
return max(TreeDepth(pRoot->left), TreeDepth(pRoot->right)) + 1;
}
};
日期
2018 年 3 月 24 日 —— 周六,校园里很多正在拍毕业照的研三学生~~
2019 年 3 月 7 日 —— 3月开始,春天到了
最新文章
- SQL转换时间的时分
- python中字典的使用
- 百度地图JavaScript API覆盖物旋转时出现偏移
- ADT开发AndroidManifest.xml file missing错误
- C# Math
- UIViewController卸载过程(ios6.0以后)
- centos6.4搭建knowlededgeroot-1.0.4知识库平台
- POJ——3984
- php中的NOTICE 的错误解决方法
- 在Wince模拟器接入网络的方法
- CSS hank
- FORTH基本堆栈操作
- 基于element ui的级联选择器组件实现的分类后台接口
- 044 SimpleDateFormat的线程安全问题与解决方案
- mybits根据表自动生成 java类和mapper 文件
- 利用python脚本(xpath)抓取数据
- ES6 Iterator
- CentOS7安装配置Bacular
- innodb 表锁和行锁
- shell_exec() has been disabled for security reasons错误怎么解决?
热门文章
- 阿里云ECS磁盘性能测试
- Spring Security 基于URL的权限判断
- act
- 【leetcode】1293 .Shortest Path in a Grid with Obstacles
- 集合类——Map集合、Properties属性文件操作
- String.split()与StringUtils.split()的区别
- 重量级&;轻量级
- 【Linux】【Services】【Web】Haproxy
- 阿里巴巴Java开发手册摘要(一)
- 『与善仁』Appium基础 — 20、Appium元素定位