数据结构
数据结构
Mason97
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
复杂链表的复制
【LeetCode】面试题35. 复杂链表的复制 解题方法:建立HashMap<> class Solution { public Node copyRandomList(Node head) { if(head == null) return null; Node newHead = new Node(head.val);//建立我们新链表...原创 2020-03-10 12:04:06 · 127 阅读 · 0 评论 -
求二叉树中的最大直径
LeetCode 543. 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 自己的思路:非常不好 一个二叉树的最大直径 = max { 左子树的最大直径,右子树的最大直径,左子树深度+右子树深度 } class Solution { //思路一个二叉树的最大直径,应该是根节点左子树的深度加上右子树的深度...原创 2020-03-10 10:31:55 · 920 阅读 · 0 评论 -
翻转单词顺序
来源:力扣(LeetCode) https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 面试题58 - I. 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。 ...原创 2020-03-09 14:18:19 · 453 阅读 · 0 评论 -
找出数组中最小的k个数
LeetCode https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/ 面试题40. 最小的k个数 解法一:O(nlogn) 快速排序,时间复杂度为nlogn,然后前k个元素就是最小的k个数 class Solution { public int[] getLeastNumbers(int[] arr, int k) {...原创 2020-03-07 19:49:50 · 3385 阅读 · 0 评论 -
怎么判断一个二叉树是不是平衡二叉树?
https://leetcode-cn.com/problems/ping-heng-er-cha-shu-lcof/ 题目描述: 面试题55 - II. 平衡二叉树 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 代码: (1 ms) (42 MB) 我定义了一个叫做method的成员方法,可以求一个二叉树...原创 2020-03-07 13:49:29 · 473 阅读 · 0 评论 -
二叉树找到两个结点的最近公共祖先
面试题68 - I. 二叉搜索树的最近公共祖先 https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian-lcof/ 题目描述: 思路: 这是一个二叉搜索树,根节点左边的数都小于根节点,根节点右边的数都大于根节点。 如果两个结点的值都小于根节点的值,两个结点一定都在树的左边。都大于根节点的...原创 2020-03-05 13:08:46 · 1007 阅读 · 0 评论 -
【LeetCode】面试题54. 二叉搜索树的第k大节点
https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ 题目描述: 给定一棵二叉搜索树,请找出其中第k大的节点。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4 自己的解法:(13 ms)(41.1 MB) 层序遍历,将结点...原创 2020-03-04 18:10:11 · 215 阅读 · 0 评论 -
【LeeCode】面试题25. 合并两个排序的链表
https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/ 问题描述: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 遍历方法: ...原创 2020-03-02 14:48:20 · 155 阅读 · 0 评论 -
【LeeCode】面试题55 - I. 二叉树的深度
题目描述: 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 代码: 递归算法(0 ms)(38.9 MB) maxDepth()方法可以求出一个树的最大深度,递归的思路。 public int maxDepth(TreeNode root) { if (root == null) return...原创 2020-03-02 12:13:49 · 301 阅读 · 0 评论 -
【LeeCode】637. 二叉树的层平均值
题目描述: 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 思路: 类比二叉树的层序遍历,建立一个辅助的队列,在队列中进行遍历,如果此结点有左儿子,将其入队,如果有右儿子,将其入队,接着沿队列向下遍历。 这道题目中要求计算每一层的平均值,故如何知道队列中的哪些结点是这一层的呢?初到一层的结点的时候,统计一下队列中元素的个数就可以了,因为Queue<>接口实现了Collect...原创 2020-03-02 11:40:33 · 273 阅读 · 0 评论 -
【LeeCode】82. 删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 解法: 这个方法能够返回一个head,引领着一个不重复的链表; 如果输入的head是...原创 2020-03-01 19:30:25 · 216 阅读 · 0 评论 -
【LeeCode】155. 最小栈(赋予栈获得所有数最小值的功能)
【LeeCode】155. 最小栈(赋予栈获得所有数最小值的功能) 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/pro...原创 2020-03-01 17:30:40 · 151 阅读 · 0 评论 -
二叉树【汇总】
目录1 二叉树的基本概念1.1 结点的度1.2 叶结点1.3 分枝结点/终端结点1.4 左孩子、右孩子、双亲1.5 路径、路径长度1.6 祖先、子孙1.7 结点的层数1.8 树的深度1.9 树的度1.10 满二叉树、完全二叉树1.11 大顶堆和小顶堆2 性质 1 二叉树的基本概念 1.1 结点的度 结点所拥有的子树的个数 就是结点有几个儿子 1.2 叶结点 度为0的结...原创 2020-02-27 00:00:52 · 237 阅读 · 0 评论
分享