链表
903419
这个作者很懒,什么都没留下…
展开
-
有序链表转换二叉搜索树
题目描述:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树:链接:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tre原创 2020-12-13 13:53:39 · 147 阅读 · 0 评论 -
扁平化多级双向链表
题目描述:多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。链接:https://leetcode-cn.com/problems/flatten-a-multilevel-doubly-linked-list示例 1:输入:head = [1,2,3,4,5,6,null,null,原创 2020-12-11 16:46:58 · 144 阅读 · 1 评论 -
奇偶链表
题目描述:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。链接:https://leetcode-cn.com/problems/odd-even-linked-list思路分析:分别定义奇链表的头部和偶链表的头部,让该链表同时向后走,当有一个为空时,终止循环,奇链表尾部指向偶链表头部。代码:原创 2020-12-11 11:25:08 · 153 阅读 · 0 评论 -
删除排序链表中的重复元素
1.删除排序链表中的重复元素Ⅰ题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3思路分析:采用双指针法,p指向当前位置,tmp指向后一个不重复的位置,再将p的next直接指向tmp。例:代码:class Solution {public: ListNode* deleteDup原创 2020-12-08 15:09:54 · 1343 阅读 · 0 评论 -
合并两个链表
题目描述:给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置。下图中蓝色边和节点展示了操作后的结果:链接:https://leetcode-cn.com/problems/merge-in-between-linked-lists思路分析:删除list链表的中间节点,再进行链接。找到list1删除位置的前一个节点找到list1删除位置的最后一个节点释放删除节点(原创 2020-12-07 12:24:49 · 282 阅读 · 0 评论 -
分割链表
题目描述:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5链接:https://leetcode-cn.com/problems/partition-list/思路分析:比x节点值大,在右边,比x节点值小,在左边。原创 2020-12-06 15:45:57 · 147 阅读 · 0 评论 -
旋转链表
旋转链表原创 2020-12-05 11:13:31 · 878 阅读 · 0 评论