【刷题】Leetcode
文章平均质量分 68
Leetcode刷题记录
大花裤
这个作者很懒,什么都没留下…
展开
-
【Leetcode】Python实现—226.翻转二叉树
目录一、题目描述二、递归方法思路与算法代码实现复杂度分析三、迭代方法思路与算法代码实现复杂度分析一、题目描述翻转一棵二叉树。示例:输入:输出:二、递归方法思路与算法我们在做二叉树题目时候,第一想到的应该是用 递归 来解决。仔细看下题目的 输入 和 输出,输出的左右子树的位置跟输入正好是相反的,于是我们可以递归的交换左右子树来完成这道题。其实就是交换一下左右节点,然后再递归的交换左节点,右节点。根据动画图我们可以总结出递归的两个条件如下:终止条件:当前节点为 null 时返回.原创 2021-07-09 15:04:37 · 510 阅读 · 0 评论 -
【Leetcode】Python实现—101.对称二叉树
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录一、题目描述二、递归方法三、队列迭代错误方法一、题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:二、递归方法# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left原创 2021-07-09 11:36:51 · 255 阅读 · 0 评论 -
【Leetcode】Python实现—104.二叉树的最大深度
目录一、题目描述二、深度优先搜索思路与算法实现代码复杂度分析三、广度优先搜索思路与算法实现代码复杂度分析一、题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。示例:给定二叉树 [3,9,20,null,null,15,7]返回它的最大深度 3 。二、深度优先搜索思路与算法如果我们知道了左子树和右子树的最大深度 lll 和 rrr,那么该二叉树的最大深度即为max(l,r)+1max(l,r) + 1max(l,r)+1而左子树和右子树的.原创 2021-07-09 10:25:38 · 387 阅读 · 0 评论 -
【Leetcode】Python实现—102/107.二叉树的层序遍历I /II
102.二叉树的层序遍历I题目描述示例:二叉树:[3,9,20,null,null,15,7]返回其层序遍历结果:[ [3], [9,20], [15,7]]实现层次遍历属于 BFS 的范畴,层次遍历就是按照「树」的层级进行每一层的扫荡。遍历从根结点开始,首先将根结点入队,然后开始执行循环:将头结点入队弹出队首元素,如果被弹出的队首元素有左右孩子,将它们依次入队循环第 2 直到队列为空下面借助一幅图来描述其遍历过程:class Solution: d原创 2021-07-05 20:19:50 · 229 阅读 · 0 评论 -
【Leetcode】Python实现—145.二叉树的后序遍历
目录一、后序遍历二、递归实现三、迭代实现一、后序遍历二、递归实现a. 先序遍历其左子树;b. 先序遍历其右子树;c. 访问根节点;class Solution: def postorderTraversal(self, root: TreeNode) -> List[int]: def postorder(root: TreeNode): if not root: return p.原创 2021-07-05 20:09:18 · 195 阅读 · 0 评论 -
【Leetcode】Python实现—94.二叉树的中序遍历
目录一、题目描述题目中序遍历介绍二、递归实现递归遍历过程实现代码三、迭代实现一、题目描述题目给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例1:输入:root = [1,null,2,3]输出:[1,3,2]示例2:输入:root = []输出:[]示例3:输入:root = [1,null,2]输出:[1,2]中序遍历介绍二、递归实现递归遍历过程1. 前序遍历其左子树;2. 访问根节点;3. 前序遍历其右子树;然后就是一直递归下去,在访问到.原创 2021-07-05 19:44:12 · 305 阅读 · 0 评论 -
【Leetcode】Python实现—144. 二叉树的前序遍历
目录一、题目描述二、 递归实现前序遍历定义二叉树结构:生成二叉树,将列表转成二叉树:实现代码:三、迭代实现代码:一、题目描述给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例1:输入:root = [1,null,2,3]输出:[1,2,3]示例2:输入:root = []输出:[]示例3:输入:root = [1]输出:[1]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100二、 递归实现前序遍历用递归原创 2021-07-05 19:02:52 · 469 阅读 · 0 评论 -
Python程序—二叉树定义、构建及列表转化
利用嵌套函数如下例子,将列表转化为二叉树。已知列表nums,nums = [3,9,20,None,None,15,7],转化为下面二叉树:二叉树定义:class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None构建满足以上结构的二叉树,可以观察到:树的父节点和左右子节点的关系:基于以上公式,再使用递归构建二叉树。递归基情原创 2021-07-01 15:05:34 · 881 阅读 · 1 评论