![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 61
fanglegefang
这个作者很懒,什么都没留下…
展开
-
删除链表中倒数第n个节点
一.题目描述给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。样例:给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.二.解题思路定义两个指针,让一个指针先走,走到第n个节点时另一个指针再开始走,当第一个指针走到最后一个节点时,因为第二个与之相差n步,所以第二个指针在倒数第n+1原创 2017-03-29 22:58:42 · 240 阅读 · 0 评论 -
删除链表中的元素
一.题目删除链表中等于给定值val的所有节点。样例:给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。二.解题思路判断每一个节点的数据是否与所给数据相等,如果相等就将此节点覆盖.三.实现代码/** * Definition for singly-linked list. * struct Li原创 2017-03-30 23:34:12 · 315 阅读 · 0 评论 -
删除排序链表中的重复元素
一.题目给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例:给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null二.解题思路判断每一个节点与其后一个节点的数据是否相等,如果相等就将后一个节点覆盖,如果不相等向后移一个节点重复判断过程,直至最后一个节点.三.实现代码/**原创 2017-03-30 23:47:00 · 194 阅读 · 0 评论 -
翻转链表
一.题目翻转一个链表给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null二.解题思路将第一个节点之后的链存起来,定义一个空节点,使第一个节点指向空,也就是变成新链表的尾节点,再将第二个节点之后的链存起来,使第二个节点指向第一个节点,如此循环,直至使最后一个节点指向倒数第二个节点,完成翻转.三.实现代码/** * Definition原创 2017-03-31 00:03:23 · 160 阅读 · 0 评论 -
链表求和
一.题目你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和.样例:给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null二.解题思路定义一个新链表,第一个元素是将两个链表第一个节点对应的数值相加对10求模,相加后的数原创 2017-03-31 19:50:24 · 308 阅读 · 1 评论 -
在O(1)时间复杂度删除链表节点
一.题目描述给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在O(1)时间复杂度删除该链表节点。样例:给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。二.解题思路把将要删除的节点的数值改为它下一个节点的数值,再将其下一个节点覆盖.三.实现代码/** * Definition of ListNode * class原创 2017-03-31 20:06:44 · 245 阅读 · 0 评论 -
合并两个排序链表
一.题目将两个排序链表合并为一个新的排序链表样例:给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。二.解题思路用一个新链表储存合并后的元素排列.先比较两个链表的第一个元素,较小的一个作为新链表的第一个元素,然后两个链表依次向后比较,依次放入新链表,直到有一个链表结束,直接将另一个链表全部输出。三.实现代原创 2017-03-31 20:39:25 · 342 阅读 · 0 评论 -
两两交换链表中的节点
一.题目给一个链表,两两交换其中的节点,然后返回交换后的链表。样例:给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。二.解题思路定义一个头节点,头节点指向第一个节点,先将前两个节点交换,再让头结点指向交换后的第一个节点,然后将头节点移到交换后的第二个节点,重复刚才的交换步骤,依次往后进行直到最后两个元素.三.实现代码/** * Definit原创 2017-03-31 20:42:04 · 649 阅读 · 0 评论 -
链表倒数第n个节点
一.题目找到单链表倒数第n个节点,保证链表中节点的最少数量为n。样例:给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.二.解题思路三.实现代码原创 2017-03-31 22:43:07 · 349 阅读 · 0 评论 -
链表划分
一.题目给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。样例:给定链表 1->4->3->2->5->2->null,并且 x=3 返回 1->2->2->4->3->5->null二.解题思路定义两个新链表,遍历给定的链表,将每个节点与给定值x比较,比x小的放在第一个链表中,比x大的放在第二个链表中,最后原创 2017-03-31 23:15:57 · 236 阅读 · 1 评论 -
链表插入排序
一.题目用插入排序对链表排序样例:Given 1->3->2->0->null, return 0->1->2->3->null二.解题思路申请一个新链表,先把给定链表的第一个节点插进去,遍历后面的节点,比第一个大的放后面,比第一个小的放前面,往后以此类推,找到合适的位置插进去.三.实现代码/** * Definition of ListNode * class原创 2017-03-31 22:57:20 · 161 阅读 · 0 评论