morris 算法 发表于 2020-06-26 分类于 数据结构与算法 简介morris 算法是一种二叉树的遍历算法,其利用树叶子节点的孩子为空的特点,将空的孩子节点临时指向其后继节点,后续再次遍历到该节点时重置为空使其恢复树的结构。这种遍历算法能够压缩空间,使其在 O(1) 的空间复杂度内完成对树结构的遍历。 阅读全文 »
leetCode-99:Recover Binary Search Tree 发表于 2020-06-21 分类于 leetCode 问题描述给定一个二叉搜索树,其中有两个数字位置错了,要求在不改变树结构的前提下,将这两个数字交换,恢复成正常的二叉搜索树。题目链接:**点我** 阅读全文 »
leetCode-130:Surrounded Regions 发表于 2020-06-14 分类于 leetCode 问题描述给定一个二维数组,数组中的元素为 X 和 O,要求将数组被 X 包围的 O 转成 X,如果 O 的区域中有任何一个元素在边界上,则这个区域不进行转换。题目链接:**点我** 阅读全文 »
leetCode-148:Sort List 发表于 2020-06-07 分类于 leetCode 问题描述给定一个链表,要求用 O(nlog n) 的时间复杂度和 O(1) 的空间复杂度,对链表进行排序。题目链接:**点我** 阅读全文 »
leetCode-126:Word Ladder II 发表于 2020-05-31 分类于 leetCode 问题描述给定两个单词 beginWord、endWord 和一个单词列表 wordList,要求找出将单词 beginWord 变成单词 endWord 的最小的变化序列的列表。每次变化要求只能变化一个字母,而且变化后的单词必须在 wordList 中。题目链接:**点我** 阅读全文 »
leetCode-127:Word Ladder 发表于 2020-05-27 分类于 leetCode 问题描述给定两个单词 beginWord、endWord 和一个单词列表 wordList,要求找出将单词 beginWord 变成单词 endWord 的最小的变化序列的长度。每次变化要求只能变化一个字母,而且变化后的单词必须在 wordList 中。题目链接:**点我** 阅读全文 »
leetCode-97:Interleaving String 发表于 2020-05-24 分类于 leetCode 问题描述给定三个字符串 s1、s2、s3,要求判断 s3 是否能由 s1 和 s2 中的字符按顺序组成。题目链接:**点我** 阅读全文 »
leetCode-68:Text Justification 发表于 2020-05-24 分类于 leetCode 问题描述给定一个由单词组成的数组和一个数字 maxWidth,要求将单词数组中的单词进行格式化输出,规则如下: 每一行只能包括单词和空格,单词之间用空格分隔,行的长度为 maxWidth 采用贪心策略,每一行要尽可能多的放置单词 空格的分布需要尽可能的均匀,如果空格不能均匀分布,则将空格放在单词左边而不是单词的右边 对于最后一行,单词间用一个空格分隔,剩余的长度用空格补充在最后一个单词后面。 对于一行只有一个单词,则剩余的长度用空格补充在单词后面 题目链接:**点我** 阅读全文 »
leetCode-95:Unique Binary Search Trees II 发表于 2020-05-17 分类于 leetCode 问题描述给定一个整数 n,要求找出以数字 1 ~ n 构成的不同结构的二叉搜索树。题目链接:**点我** 阅读全文 »
leetCode-96:Unique Binary Search Trees 发表于 2020-05-10 分类于 leetCode 问题描述给定一个正整数 n,要求找出以数字 1 ~ n 构成的不同结构的二叉搜索树的数量。题目链接:**点我** 阅读全文 »