首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构+算法
Forlogen
创建于2021-07-05
订阅专栏
有关数据结构和算法的基础介绍,以及LeetCode相关题目
等 1 人订阅
共204篇文章
创建于2021-07-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
[快慢指针]142 - 环形链表 II - python + Java
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。解释:链表中有一个环,其尾部连...
[快慢指针]141 - 环链表 - python + Java
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。解释:链表...
137 - 只出现一次的数字 II - python
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 给定的数组中只有一个元素只出现了一次,其余的都是三次,题目要求找到它。同样可以使用暴力法依次访问数组元素,然后看它在数组中出现的额次数,...
136 - 只出现一次的数字 - python
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 题目要求找出只出现过一次的那个元素,一种方法是首先使用set进行去重,然后依次判断set中的元素在数组中出现的次数,。直到找到那个只出现一...
125 - 验证回文串 - python
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。该题要求判断字符串是否为回文串,而且只考虑不区分大小写的字母和数字。s = s.或者可以求出中点后比较中点左右的字符串是否是对称的。s = s.
116 - 填充每个节点的下一个右侧节点指针 - python
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。解释:给定二叉树如图 A 所...
[回溯法]113 - 路径总和 II - python + Java
定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。112 - 路径总和 - python中只需要判断是否存在路径的总和等于给定的目标和,而该题需要找到所有满足条件的路径。因此,我们需要在回溯寻找路径的同时保存访...
[递归]112 - 路径总和 - python + Java
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。题目要求判断二叉树中是否存在路径使得路径上的...
111 - 二叉树的最小深度 - python
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。返回它的最小深度 2.题目要求找出二叉树的最小深度,即找出二叉树中所有从根节点出发的子树的深度中的最小值。因此,我们可以依次统计从根节点出发的每一棵子树的...
110 - 平衡二叉树 - python
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。返回 true 。返回 false 。根据题目描述可知,高度平衡的二叉树中每个节点的左右子树的高度差不能超过1。因此,高度差的问题可以转换为...
109 - 有序链表转换二叉搜索树 - python
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。该题和108 - 将有序数组转换为二叉搜索树 - python唯一一点不同的地方在于这里给定的是链表形式的元素集合。因...
108 - 将有序数组转换为二叉搜索树 - python
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的...
107 - 二叉树的层次遍历 II - python
给定一个二叉树,返回其节点值自底向上的层次遍历。 这道题和一般的层序遍历是相同的,只不过在最后返回结果之前做一次数组的反转,使其满足自底向上的层次遍历的条件。cur.append(node.if node.nextLayer.append(node.if node.nextLay...
106 - 从中序与后序遍历序列构造二叉树 - python
根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。这道题和105 - 从前序与中序遍历序列构造二叉树 - python道理是一样的,我们只需要找出左子树和右子树分别对应前序遍历序列和中序遍历序列即可。index = inorder.index(root...
105 - 从前序与中序遍历序列构造二叉树 - python
根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。根节点preorder[0]在中序遍历数列中的位置index,index左边的部分为左子树的中序遍历序列,index右边的为右子树的中序遍历序列。相应的在前序遍历中,从索引1开始后的部分为对应的左子树和...
104 - 二叉树的最大深度 - python
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。返回它的最大深度 3 。层次遍历法 :使用层次遍历来统计共遍历的层次总数,因此只要某层包含节点,层次遍历就可进行,最后层次的总数就是树的深度。if nod...
103 - 二叉树的锯齿形层次遍历 - python
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。cur.append(node.if node.nextLayer.append(node.if node.nextLayer.append(node.res....
102 - 二叉树的层序遍历 - python
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 二叉树的层序遍历,其中每一层都是从左往右输出。使用数组存放每一层访问后根节点的子树,直到当前数组为空。cur.append(node.if node.nextLayer.append(node.if...
101 - 对称二叉树 - python
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。这道题虽然是判断树是否对称,即它是否满足镜像结构。100 - 相同的树 - python中判断两棵树是否相同,递归法是判断两棵树的左右子树是否分别相同。如果这里将子树中的左右子树分别看...
100 - 相同的树 - python
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。两棵树相同满足树中所有的结点都相同,即node.val、node.left和node.right都应该相同。从树的性质出发,如果两个树是相同的,那么它们的遍历序列也必...
下一页