数据结构—链表
文章平均质量分 53
death_ray
这个作者很懒,什么都没留下…
展开
-
删除链表中的元素
描述 笔记 数据 评测 删除链表中等于给定值val的所有节点。 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 解题思路:对于元素特判一下是否为首个,如果是这返回head-》next,否则保存头指针,遍原创 2017-03-27 16:15:30 · 239 阅读 · 0 评论 -
翻转链表
描述 笔记 数据 评测 翻转一个链表 您在真实的面试中是否遇到过这个题? Yes 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 解题思路:新建一个链表从尾部往前添加即可。 class Solution { public: /** * @param head: The原创 2017-03-27 17:04:00 · 158 阅读 · 0 评论 -
链表划分
给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。 你应该保留两部分内链表节点原有的相对顺序。 您在真实的面试中是否遇到过这个题? Yes 样例 给定链表 1->4->3->2->5->2->null,并且 x=3 返回 1->2->2->4->3->5->null 解题思路:建立两个链表大与x放入第一个否原创 2017-03-27 17:00:35 · 153 阅读 · 0 评论 -
删除排序链表中的重复元素
描述 笔记 数据 评测 给定一个排序链表,删除所有重复的元素每个元素只留下一个。 您在真实的面试中是否遇到过这个题? Yes 样例 给出 1->1->2->null,返回 1->2->null 给出 1->1->2->3->3->null,返回 1->2->3->null 解题思路:用set保存元素,每次插入判断是否重复,原创 2017-03-27 16:58:16 · 168 阅读 · 0 评论 -
合并两个排序链表
描述 笔记 数据 评测 将两个排序链表合并为一个新的排序链表 您在真实的面试中是否遇到过这个题? Yes 样例 给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。 解题思路:直接将一个链表看成插入排序的中间过程,插入另一个链表即可,代码就是插入排序改改。原创 2017-03-27 16:54:44 · 164 阅读 · 0 评论 -
链表倒数第n个节点
描述 笔记 数据 评测 找到单链表倒数第n个节点,保证链表中节点的最少数量为n。 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1. 水题一枚,直接遍历即可。class Solution { public: /** * @param原创 2017-03-27 16:48:47 · 169 阅读 · 0 评论 -
链表求和
描述 笔记 数据 评测 你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 您在真实的面试中是否遇到过这个题? Yes 样例 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->原创 2017-03-27 16:39:29 · 251 阅读 · 0 评论 -
链表插入排序
描述 笔记 数据 评测 用插入排序对链表排序 您在真实的面试中是否遇到过这个题? Yes 样例 Given 1->3->2->0->null, return 0->1->2->3->null 解题思路:另外建一个链表然后模拟排序插入即可。 class Solution { public: /** * @par原创 2017-03-27 16:27:59 · 244 阅读 · 0 评论 -
删除链表中倒数第n个节点
给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 注意事项 链表中的节点个数大于等于n 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. 解题思路:先遍历一遍查一下原创 2017-03-27 16:24:52 · 158 阅读 · 0 评论 -
在O(1)时间复杂度删除链表节点
描述 笔记 数据 评测 给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。 您在真实的面试中是否遇到过这个题? Yes 样例 给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。 解题思路:将靠删除的结点赋值下一个的然后指向下class Soluti原创 2017-03-27 16:22:07 · 195 阅读 · 0 评论 -
两两交换链表中的节点
描述 笔记 数据 评测 给一个链表,两两交换其中的节点,然后返回交换后的链表。 您在真实的面试中是否遇到过这个题? Yes 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 解题思路:用数组保存每个结点的地址,然后进行2-1-4-3class Solution { public: /**原创 2017-03-27 16:19:16 · 199 阅读 · 0 评论 -
数据结构-链表 总结
总体来说链表的简单题还是比较好做的,就是好久没敲代码有些手有点生,开始有些不会敲了,但是慢慢就觉得比起以前acm的题完全不是一个档次。 但是做题后我发现虽然是水题,但是却也不是分分钟能a的,必须经过一定的推理过程,而且做题可以加深对链表的理解,比如说以前我将头尾节点的概念看的太重,动不动就觉到要想访问链表元素只能从头开始,后来我发现链表只是一组数据用链式存下来,像数组一样,原创 2017-03-28 21:20:41 · 211 阅读 · 0 评论