![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
文章平均质量分 86
阿阿哼
这个作者很懒,什么都没留下…
展开
-
leetcode100:相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 递归 首先考虑特殊情况,如果p、q都是空,返回True; 如果都不为空,那么先比较根节点的值是否相等,如果不相等,返回False,如果相等,进一步利用递归比较左子树和右子树是否相等; 除此之外还有p、q中有一个为空的情况,返回False # Definition for a bi...原创 2019-05-04 17:33:32 · 157 阅读 · 0 评论 -
leetcode101对称二叉树
递归: 思路:判断一个树是否镜像对称即判断根节点的左子树和右子树是否镜像。流程:首先判断两个子树AB的根节点是否相等,如果相等的话判断1、A的左子树是否等于B的右子树以及2、A的右子树==B的右子树。其实这个判断过程就是一个递归的过程,比如我们判断条件1也就是判断两个子树是否镜像,重复流程1、2。代码中把判断流程写进了一个函数isSymmetricRecy() # Definition for a...原创 2019-05-04 18:50:49 · 75 阅读 · 0 评论 -
二叉树的实现
二叉树(binary tree) 二叉树的定义 二叉树(Binary Tree)是一种特殊的树型结构,它的特点是每个结点至多有两棵子树(即二叉树中不存在度大于2的结点),且二叉树的子树有左右之分,其次序不能任意颠倒(有序树)。树的结点包含一个数据元素及若干指向其子树的分支。节点拥有的子树数量称为节点的度(Degree)。 根据二叉树的定义,其具有下列重要性质: 在二叉树的i层上,至多有2^(...原创 2019-05-05 09:01:54 · 94 阅读 · 0 评论 -
LeetCode104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 方法1:迭代 思路:二叉树层次遍历的层数即为树的深度。 # Definition for a binary tree node. # class TreeNode(object): # d...原创 2019-05-05 15:17:51 · 96 阅读 · 0 评论 -
LeetCode111. 二叉树的最小深度
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 方法1: 迭代。n记录层数(注意n要从1开始,因为会在循环的半路中就返回n,如果从0开始的话要返回n+1),stack为栈,每一次stack记录的都是属于根节点属于同一层的子树。 # Defini...原创 2019-05-05 16:00:43 · 220 阅读 · 0 评论 -
LeetCode606. 根据二叉树创建字符串
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。 空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # s...原创 2019-05-18 17:18:08 · 134 阅读 · 0 评论