11 2021 档案

摘要:559. N 叉树的最大深度 题目链接:559. N 叉树的最大深度 题解 思路:该题的解法与104. 二叉树的最大深度(层次遍历—使用队列迭代)以及104. 二叉树的最大深度(递归法) 一样。 代码(C++): //递归法 //后序遍历 class Solution1 { public: int 阅读全文
posted @ 2021-11-30 14:41 wltree 阅读(40) 评论(0) 推荐(0) 编辑
摘要:104. 二叉树的最大深度(递归法) 题目链接:104. 二叉树的最大深度(简单) 题解 思路:该题可以使用前序遍历或者后序遍历,使用前序求的是深度,后序遍历求的是高度。而根节点的高度就是深度。 代码(C++): //递归(1.确定递归函数的参数和返回值;2.确定终止条件;3.确定单层递归的逻辑) 阅读全文
posted @ 2021-11-30 14:37 wltree 阅读(102) 评论(0) 推荐(0) 编辑
摘要:N叉树的前序遍历和后续遍历 题目链接: 589. N 叉树的前序遍历(简单) 590. N 叉树的后序遍历(简单) 题解 思路:可以用“二叉树的统一迭代遍历 ”解决 代码(C++): //N叉树的前序遍历(迭代法)(中左右——右左中null) class Solution { public: vec 阅读全文
posted @ 2021-11-30 09:21 wltree 阅读(143) 评论(0) 推荐(0) 编辑
摘要:101. 对称二叉树 题目链接: 101. 对称二叉树(简单) 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / 阅读全文
posted @ 2021-11-30 08:22 wltree 阅读(31) 评论(0) 推荐(0) 编辑
摘要:226. 翻转二叉树 题目链接:226. 翻转二叉树(简单) 题目描述 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \1 3 6 9 输出: 4 / \ 7 2 / \ / \9 6 3 1 题解 思路:遍历每一个节点,如果该节点的左孩子和右孩子中的一个或两个不为空,则交换位置 阅读全文
posted @ 2021-11-28 21:59 wltree 阅读(33) 评论(0) 推荐(0) 编辑
摘要:111. 二叉树的最小深度 题目链接: 111. 二叉树的最小深度(简单) 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7]输出: 阅读全文
posted @ 2021-11-28 11:26 wltree 阅读(74) 评论(0) 推荐(0) 编辑
摘要:104. 二叉树的最大深度 题目链接:104. 二叉树的最大深度(简单) 题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 阅读全文
posted @ 2021-11-28 11:24 wltree 阅读(48) 评论(0) 推荐(0) 编辑
摘要:116. 填充每个节点的下一个右侧节点指针 题目链接: 116. 填充每个节点的下一个右侧节点指针(中等) 题目描述 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *rig 阅读全文
posted @ 2021-11-28 11:23 wltree 阅读(28) 评论(0) 推荐(0) 编辑
摘要:515. 在每个树行中找最大值 题目链接: 515. 在每个树行中找最大值(中等) 题目描述 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1: 输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]解释: 1 / \ 3 2 / \ \ 5 3 阅读全文
posted @ 2021-11-28 11:20 wltree 阅读(25) 评论(0) 推荐(0) 编辑
摘要:429. N 叉树的层序遍历 题目链接:429. N 叉树的层序遍历 题目描述 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,5 阅读全文
posted @ 2021-11-27 15:47 wltree 阅读(94) 评论(0) 推荐(0) 编辑
摘要:637. 二叉树的层平均值 题目链接:637. 二叉树的层平均值(简单) 题目描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层 阅读全文
posted @ 2021-11-27 08:04 wltree 阅读(38) 评论(0) 推荐(0) 编辑
摘要:199. 二叉树的右视图 题目链接:199. 二叉树的右视图(中等) 题目描述 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4]输出: [1,3,4] 示例 2: 输入: [ 阅读全文
posted @ 2021-11-26 16:45 wltree 阅读(29) 评论(0) 推荐(0) 编辑
摘要:107. 二叉树的层序遍历 II 题目链接:107. 二叉树的层序遍历 II(中等) 题目描述 给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / 阅读全文
posted @ 2021-11-26 15:51 wltree 阅读(29) 评论(0) 推荐(0) 编辑
摘要:102.二叉树的层序遍历 题目链接:102.二叉树的层序遍历(中等) 题目描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层序遍历结果: 阅读全文
posted @ 2021-11-26 15:07 wltree 阅读(53) 评论(0) 推荐(0) 编辑
摘要:二叉树的统一迭代遍历 题目链接 144.二叉树的前序遍历(简单) 94.二叉树的中序遍历(简单) 145.二叉树的后序遍历(简单) 题解 思路:以中序遍历为例,在二叉树的迭代遍历中提到说使用栈的话,无法同时解决访问节点(遍历节点)和处理节点(将元素放进结果集)不一致的情况。 现在将访问的节点放入栈中 阅读全文
posted @ 2021-11-26 10:31 wltree 阅读(116) 评论(0) 推荐(0) 编辑
摘要:二叉树的迭代遍历 题目链接 144.二叉树的前序遍历(简单) 94.二叉树的中序遍历(简单) 145.二叉树的后序遍历(简单) 题解 用迭代法(非递归的方式)来实现二叉树的前中后序遍历。 递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹 阅读全文
posted @ 2021-11-25 15:33 wltree 阅读(1008) 评论(0) 推荐(0) 编辑
摘要:二叉树的递归遍历 题目链接: 144.二叉树的前序遍历(简单) 94.二叉树的中序遍历(简单) 145.二叉树的后序遍历(简单) 题解: 思路:弄清递归三要素 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而 阅读全文
posted @ 2021-11-25 10:04 wltree 阅读(158) 评论(0) 推荐(0) 编辑
摘要:239. 滑动窗口最大值 题目链接:239. 滑动窗口最大值(困难) 题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1: 输入:nums = [ 阅读全文
posted @ 2021-11-13 16:12 wltree 阅读(79) 评论(0) 推荐(0) 编辑
摘要:150. 逆波兰表达式求值 题目链接:150. 逆波兰表达式求值(中等) 题目描述 根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数 阅读全文
posted @ 2021-11-11 16:45 wltree 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1047. 删除字符串中的所有相邻重复项 题目链接:1047.删除字符串中的所有相邻重复项(简单) 题目描述 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案 阅读全文
posted @ 2021-11-11 15:20 wltree 阅读(71) 评论(0) 推荐(0) 编辑
摘要:20. 有效的括号 题目链接:20. 有效的括号(简单) 题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:s = "()"输出:tr 阅读全文
posted @ 2021-11-11 11:11 wltree 阅读(38) 评论(0) 推荐(0) 编辑
摘要:225. 用队列实现栈 题目链接:225. 用队列实现栈(简单) 题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int po 阅读全文
posted @ 2021-11-10 14:32 wltree 阅读(46) 评论(0) 推荐(0) 编辑
摘要:232. 用栈实现队列 题目链接:232. 用栈实现队列(简单) 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 阅读全文
posted @ 2021-11-10 10:34 wltree 阅读(27) 评论(0) 推荐(0) 编辑
摘要:459.重复的子字符串 题目链接:459. 重复的子字符串(简单) 题目描述 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 1: 输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。 示 阅读全文
posted @ 2021-11-09 18:52 wltree 阅读(73) 评论(0) 推荐(0) 编辑
摘要:28. 实现 strStr() 题目链接:28. 实现 strStr()(简单) 实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 说明 阅读全文
posted @ 2021-11-09 15:22 wltree 阅读(66) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 58 - II. 左旋转字符串 题目链接:剑指 Offer 58 - II. 左旋转字符串(简单) 题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位 阅读全文
posted @ 2021-11-08 20:55 wltree 阅读(21) 评论(0) 推荐(0) 编辑
摘要:541. 反转字符串 II 题目链接:541. 反转字符串 II(简单) 题目描述 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个, 阅读全文
posted @ 2021-11-08 10:42 wltree 阅读(65) 评论(0) 推荐(0) 编辑
摘要:344. 反转字符串 题目链接:344. 反转字符串(简单) 题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s = ["h","e", 阅读全文
posted @ 2021-11-08 09:27 wltree 阅读(41) 评论(0) 推荐(0) 编辑
摘要:142. 环形链表 II 题目链接:142. 环形链表 II(中等) 题目描述 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有 阅读全文
posted @ 2021-11-07 17:47 wltree 阅读(32) 评论(0) 推荐(0) 编辑
摘要:面试题02.07.链表相交 题目链接:面试题 02.07. 链表相交(简单) 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环 阅读全文
posted @ 2021-11-07 10:55 wltree 阅读(46) 评论(0) 推荐(0) 编辑
摘要:19. 删除链表的倒数第 N 个结点 题目链接:19. 删除链表的倒数第 N 个结点(中等) 题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5] 阅读全文
posted @ 2021-11-06 08:47 wltree 阅读(35) 评论(0) 推荐(0) 编辑
摘要:24.两两交换链表中的节点 题目链接:24. 两两交换链表中的节点(中等) 题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 输入:head = [1,2,3,4]输出:[2,1,4,3] 示例 2: 输 阅读全文
posted @ 2021-11-05 10:09 wltree 阅读(56) 评论(0) 推荐(0) 编辑
摘要:206.反转链表 题目链接:206. 反转链表(简单) 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5]输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2]输出:[2,1] 示例 3: 输入:he 阅读全文
posted @ 2021-11-04 10:52 wltree 阅读(403) 评论(0) 推荐(0) 编辑
摘要:707.设计链表 题目链接:707. 设计链表(中等) 题目描述 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节 阅读全文
posted @ 2021-11-03 08:59 wltree 阅读(35) 评论(0) 推荐(0) 编辑
摘要:203.移除链表元素 题目链接:203. 移除链表元素(简单) 题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6输出 阅读全文
posted @ 2021-11-02 09:38 wltree 阅读(173) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示