摘要:
题目链接:反转链表 II 题意:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 题解:感觉就是k个一组反转链表改了下。。还简 阅读全文
摘要:
题目链接:分隔链表 题意:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 题解:QAQ刚开始看题目看错了。以为是那种排序。要按大小的。写了一堆错的。然后重新看题,发现简单了不少啊。 用两个链表分别放 阅读全文
摘要:
题目链接:删除排序链表中的重复元素 题意:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 题解:这个的上一题是也是删除排序链表的重复元素,不过元素都删掉。。在剑指offer里也有做过。可以看链接。 这个就是在上个题的基础上做一点修改。最后更新节点时,直接指向这个重复节点的最后一个节点 阅读全文
摘要:
题目链接:旋转链表 题意:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4 阅读全文
摘要:
题目链接:K 个一组翻转链表 题意:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 给你这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1 阅读全文
摘要:
题目链接:两两交换链表中的节点 题意:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 给定 1->2->3->4, 你应该返回 2->1->4->3. 题解:这个题建议自己画个图。。 主要步骤大概就以下三步。能想出来,这个题 阅读全文
摘要:
题目链接:合并K个排序链表 题意:合并k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 题解:这题的前身是合并两个排序链表。在剑指里有写。可以点击链接查看。。 这个题,最好就是用小顶堆,O(nlog(K))。用c++的优先队列可以解决这个小顶堆。 把每个节点丢进优先队列,然后以出队列 阅读全文
摘要:
题目链接:两数相加 题意:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 题解:每次 阅读全文
摘要:
题目链接:拼写单词 题意:给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。 注意:每次拼写时,chars 中的每个字母都只能用一次。 阅读全文