认识二叉树 (leetcode 104. 二叉树的最大深度)

leetcode 104 :二叉树的最大深度

要做这题,还是得先了解下二叉树,come on!

二叉树是树的一种,所有我们从树的基本概念了解起。

树的基本概念

计算机科学中的树是长成这样的:
在这里插入图片描述

一、树的术语

1.节点的度: 一个节点中含有子树的个数(图中B节点的度为3)
2.树的度: 一颗树中,最大的节点的度(图中树的度就是B节点的度)
3.父亲节点或者父节点: 含有子节点的节点(图中的L,G等)
4.孩子节点或者子节点: 父节点的子节点(图中的H,I是B的子节点)
5.叶节点或者终节点: 度为零的节点,即没有子节点(图中的H,I,J等)
6.兄弟节点: 具有相同父节点的节点互称为兄弟节点(图中的O,L节点)
7.节点的层次: 从根开始定义,根为第一层,一次类推(B节点的层次为3)
8.树的高度和深度: 树中节点的最大层次
9.堂兄弟节点: 父节点在同一层的节点(图中的G和E节点)
10.节点的祖先: 从根到该节点所经分支的所有节点(图中F节点祖先为A,C)
11.子孙: 一某节点为根的子树中任一节点都为该节点的子孙(图中G节点的子孙为L,M,O)

了解完了这些,开始认识一些树的分类

二、树的种类

下面都是我用思维导图画的,不手打了…
在这里插入图片描述
我们的重点是掌握二叉树:
在这里插入图片描述

1. 完全二叉树

在这里插入图片描述
还是上图比较直观:
在这里插入图片描述
一句话概括就是:除最后一层,其它层得各个节点都含有两个子节点
特殊情况 —> 满二叉树:最后一层有2**(n-1)叶子节点(n表示树的深度)
在这里插入图片描述

2.平衡二叉树

在这里插入图片描述
在完全二叉树里面的两颗树都是平衡二叉树,现在来一个非平衡·二叉树感受下区别:
在这里插入图片描述

3.排序二叉树

在这里插入图片描述

在这里插入图片描述
总结:左子树比根节点小,右子树比根节点大

三、开始刷题

题目要求:给定一个二叉树,返回它的深度
题目详情
分析:找出根节点最大的子树的深度在这里插入图片描述
如上图所示,一颗树可以分成子树,子树还能继续划分出子树…
于是我们可以想到用迭代的思想来做这道题

class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        if root == None:
            return 0
        else:
            return max(self.maxDepth(root.left),self.maxDepth(root.right))+1

完毕,提交!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值