随笔分类 -  leetccode

力扣刷题
0101-对称二叉树
摘要:给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 进阶: 你可以运用递归和迭代两种方法解决这个问题吗? 来源:力扣(LeetCode) 链接:https://leetcod 阅读全文

posted @ 2021-11-14 16:41 进击的davis 阅读(31) 评论(0) 推荐(0)

0117-填充每个节点的下一个右侧节点指针 II
摘要:给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针 阅读全文

posted @ 2021-11-14 13:03 进击的davis 阅读(37) 评论(0) 推荐(0)

0116-填充每个节点的下一个右侧节点指针
摘要:给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧 阅读全文

posted @ 2021-11-14 11:48 进击的davis 阅读(35) 评论(0) 推荐(0)

0111-二叉树的最小深度
摘要:给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5, 阅读全文

posted @ 2021-11-13 23:22 进击的davis 阅读(45) 评论(0) 推荐(0)

0104-二叉树的最大深度
摘要:给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回它的最大深度 3 。 来源:力扣(LeetCode) 链接:h 阅读全文

posted @ 2021-11-13 23:04 进击的davis 阅读(47) 评论(0) 推荐(0)

0515-在每个树行中找到最大值
摘要:给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1: 输入: root = [1,3,2,5,3,null,9] 输出: [1,3,9] 解释: 1 / 3 2 / \ \ 5 3 9 示例2: 输入: root = [1,2,3] 输出: [1,3] 解释: 1 / 2 阅读全文

posted @ 2021-11-13 22:48 进击的davis 阅读(39) 评论(0) 推荐(0)

0429-N叉树的层序遍历
摘要:给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,5,6] 输出:[[1],[3,2,4],[5,6]] 示例 2: 输入:root 阅读全文

posted @ 2021-11-13 22:33 进击的davis 阅读(166) 评论(0) 推荐(0)

0637-二叉树的层平均值
摘要:给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入: 3 / 9 20 / 15 7 输出:[3, 14.5, 11] 解释: 第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。 提示: 节点值的范围在32位有符 阅读全文

posted @ 2021-11-13 22:16 进击的davis 阅读(76) 评论(0) 推荐(0)

0199-二叉树的右视图
摘要:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 阅读全文

posted @ 2021-11-13 21:41 进击的davis 阅读(51) 评论(0) 推荐(0)

0107-二叉树的层序遍历II-
摘要:给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其自底向上的层序遍历为: [ [15,7], [9,20], [3] ] 来源:力扣 阅读全文

posted @ 2021-11-13 21:16 进击的davis 阅读(50) 评论(0) 推荐(0)

0102-leetcode算法实现之二叉树层序遍历-binary-tree-level-order-traversal-python&golang实现
摘要:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层序遍历结果: [ [3], [9,20], [15,7] ] 来源:力扣(LeetCode) 阅读全文

posted @ 2021-11-13 18:04 进击的davis 阅读(53) 评论(0) 推荐(0)

0145-leetcode算法实现之二叉树的后续遍历-binary-tree-postorder-traversal-python&golang实现
摘要:给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tr 阅读全文

posted @ 2021-11-11 22:32 进击的davis 阅读(64) 评论(0) 推荐(0)

0094-leetcode算法实现之二叉树中序遍历-binary-tree-inorder-traversal-python&golang实现
摘要:给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[2, 阅读全文

posted @ 2021-11-11 22:30 进击的davis 阅读(59) 评论(0) 推荐(0)

0144-leetcode算法实现之二叉树的前序遍历-binary-tree-preorder-traversal-python&golang实现
摘要:给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[1 阅读全文

posted @ 2021-11-10 22:09 进击的davis 阅读(58) 评论(0) 推荐(0)

0347-前K个高频元素
摘要:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 1 ⇐ 阅读全文

posted @ 2021-11-10 07:25 进击的davis 阅读(116) 评论(0) 推荐(0)

0239-leetcode算法实现之滑动窗口最大值-sliding-window-maximum-python&golang实现
摘要:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6, 阅读全文

posted @ 2021-11-10 07:23 进击的davis 阅读(97) 评论(0) 推荐(0)

0150-leetcode算法实现之逆波兰表达式-evaluate-reverse-polish-notation-python&golang实现
摘要:根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入:tokens = ["2","1" 阅读全文

posted @ 2021-11-09 22:16 进击的davis 阅读(69) 评论(0) 推荐(0)

1047-leetcode算法实现之删除字符串的所有相邻的重复字符-remove-all-adjacent-duplicates-in-string-python&golang实现
摘要:给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca" 输出:"ca" 解释: 例如,在 "abbaca" 中,我们可以删 阅读全文

posted @ 2021-11-09 21:11 进击的davis 阅读(89) 评论(0) 推荐(0)

0225-leetcode算法实现之用队列实现栈-implement-stack-using-queues-python&golang实现
摘要:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。 boole 阅读全文

posted @ 2021-11-09 08:14 进击的davis 阅读(36) 评论(0) 推荐(0)

0020-leetcode算法实现之有效括号-valid-parentheses-python&golang实现
摘要:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:s = "()" 输出:true 示例 2: 输入:s = "()[]{}" 输出:true 阅读全文

posted @ 2021-11-08 23:05 进击的davis 阅读(60) 评论(0) 推荐(0)

导航