首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode每日一题
薪炎乙志
创建于2021-10-15
订阅专栏
LeetCode每日一题
暂无订阅
共132篇文章
创建于2021-10-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
leetcode 208. Implement Trie (Prefix Tree) 实现 Trie (前缀树) (中等)
字典树的插入、删除和查找都不难,用一个一重循环即可,即第i次循环找到前i个字母所对应的子树,然后进行相应的操作。实现这棵字母 树,可以用最常见的数组保存即可(静态开辟内存)。至于节点对儿子的指向,一般
leetcode 669. Trim a Binary Search Tree 修剪二叉搜索树 (简单)
什么是二叉查找树? 二叉查找树(Binary Search Tree,BST)是一种特殊的二叉树:对于每个父节点,其左子树中所有节点的值小于等于父节点的值,其右子树中所有节点的值大于等于父节点的值。
leetcode 144. Binary Tree Preorder Traversal 二叉树展开为链表(中等)
二叉树的遍历,常见的有先序遍历、中序遍历、后序遍历和层序遍历,它们用uxjv实现起来都非常简单; 考虑使用非递归来实现,用到时stack来辅助转自,由于先序遍历的顺序为 根左右
leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 从前序与中序遍历
本题要求用先序和中序遍历来建立二叉树,由于先序的顺序的第一个肯定是根,所以原二叉树的根节点可以知道,题目中给了一个很关键的条件就是树中没有相同元素
leetcode 637. Average of Levels in Binary Tree 二叉树的层平均值(简单)
求一个二叉树每层的平均值,利用广度优先搜索,我们可以很方便地求取每层的平均值。直接使用queue,直接将每层的值累计加起来除以该层的节点个数,存入结果ans中即可。
leetcode 1110. Delete Nodes And Return Forest 删点成林(中等)
二叉树的题首先想到用递归,递归方法传递4个参数,当前节点;是否是根节点(如果是根节点、且存在左右子树才会形成新树);再传递一个hashset用来存储要删除的节点,达到常数据级搜索;还有一个保存结果的l
leetcode 110. Balanced Binary Tree 平衡二叉树(简单)
思路:定义一个求各个节点深度的函数,然后中每个节点的两个子树来比较深度差,针对每个点都会被计算深度时访问一次进行优化,如果发现子树不平衡,则不计算具体的深度,而是直接返回-1,优化后的谅赤:对于每一个
leetcode 543. Diameter of Binary Tree 二叉树的直径(简单)
求二叉树的直径,其实就是求根节点左右两个子树的深度之和。我们只要对每个节点求出其左右子树深度之和,这个值作为一个候选值。
leetcode 437. Path Sum III 路径总和 III(中等)
双层递归实现,注意分情况考虑:1、如果选取该节点加入路径,则之后必须继续加入连续节点,或停止加入节点;2、如果不选取该节点加入路径,则对其左右节点进行重新考虑。因此一个方便的方法是我们创建一个辅函数,
leetcode 101. Symmetric Tree 对称二叉树(简单)
(1)如果两个子树都为空指针,则它们相等或对称(2) 如果两个子树只有一个为空指针,则它们不相等或不对称(3)如果两个子树根节点的值不相等, 则它们不相等或不对称(4)根据相等或对称要求,进行递归处理
leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)
思路:非迭代版实现,从根节点开始出发,先检测其左子节点是否存在,如存在则将根节点和其右节点断开,将左子节点及其后面所有结构一起连接到右子节点的位置,把原右子节点连到原左子节点为最后面的右子节点之后。
leetcode 104. Maximum Depth of Binary Tree 二叉树的最大深度(简单)
思路二:也可以用层序遍历二叉树,然后计数总层数,即为二叉树的最大深度,需要注意的是while循环中的for循环的写法,一定要将q.size()放在初始化里,而不能放在普快停止的条件中,因为q的大小是随
leetcode 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素(简单)
思路:如果下一个元素和当前元素的值相等,这个元素的下个元素就等于下个元素的下个元素,继续循环。。。。
leetcode 148. Sort List 排序链表(中等)
用快慢指针将列表分成两部分,将两部分列表递归排序,再将排序后的列表合并,用快慢指针将列表分成两部分,将两部分列表递归排序,再将排序后的列表合并
leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)
还是分递归和迭代两种思路来实现,要理解链表,还是分递归和迭代两种思路来实现,要理解链表,还是分递归和迭代两种思路来实现,要理解链表
leetcode 206. Reverse Linked List 反转链表(简单)
用迭代和递归来实现,迭代思路:在原镮之前建立一个空的prev节点,因为首节点会变,从head开始,将之后的一个节点移到prev之后,重复此操作直到head成为末节点为止
leetcode 409 Longest Palindrome 最长回文串(简单)
思路:先统计每个字符出现的次数,再遍历统计后的字符次数,如果是偶数次,那么一定可以是回文字符串的一部分,加上该次数;如果是奇数n字,那么加上n-1次;最后判断如果出现过奇数次的字符,那么最后结果加1。
leetcode 28. Implement strStr() 实现 strStr()(简单)
思路2:遍历线字符串,只需要遍历m-n长度即可,这样可以提高运算效率。然后对每个字符,都遍历一遍子字符串,一个一个字符的对应比较,如果对应位置有不等的,则跳出循环,如果一直没有跳出循环,则说明子字符串
leetcode 227. Basic Calculator II 基本计算器 II(中等)
如果我们在字符串左边加上一个加号,可以证明其不改变运算结果,且字符串可以分割成多个<运算符, 数字>对子的形式;这样一来我们就可以从左往右处理了。由于乘除的优先级高于加减,因此我们需要使用一个中间变量
leetcode 696. Count Binary Substrings 计数二进制子串(简单)
还可以从字符串的每个位置开始,向左向右延长,判断存在多少当前位置为中轴的由01连续二进制字符串 。
下一页