![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构,链表
jingjing1125813956
这个作者很懒,什么都没留下…
展开
-
翻转链表
问题描述: 翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 解题思路: 新建一个链表,经过赋值进行交换。 代码: /** * Definition of ListNode * * class ListNode { * public: * int val; * ListN原创 2017-03-31 19:58:48 · 119 阅读 · 0 评论 -
在O(1)时间复杂度删除链表节点
问题描述: 给定一个单链表中的一个等待被删除的节点(非表头或表尾)。在O(1)时间复杂度删除该链表节点。 解题思路: 设等待被删除的节点为p,将p的next的值赋给p,将p的next 的指针指向next的下一个。 程序代码: Definition of ListNode class ListNode { public: int val; Li原创 2017-03-30 16:17:47 · 270 阅读 · 0 评论 -
链表倒数第n个节点
Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * }原创 2017-03-30 17:25:55 · 284 阅读 · 0 评论 -
链表插入排序
Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * }原创 2017-03-31 16:30:57 · 291 阅读 · 0 评论 -
删除链表中倒数第n个节点
Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * }原创 2017-03-31 17:21:27 · 139 阅读 · 0 评论 -
两两交换链表中的节点
问题描述: 给一个链表,两两交换其中的节点,然后返回交换后的链表。 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 解题思路: 处理空表和只有一个节点的特殊情况(直接输出),新建一个链表,建立q、k两个指针,进行交换,在这过程中要处理节点总数是单数的情况(此时不必交换)。 程序代码: /** * Definition for singly-link原创 2017-03-31 17:39:50 · 218 阅读 · 0 评论 -
链表求和
问题描述: 你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null 解题思路: 当链表中有空表时,直接返回另一条链表,当皆不是空表时,进行加法操作,还有考虑一个链表比原创 2017-03-31 18:37:51 · 257 阅读 · 0 评论 -
合并两个排序链表
问题描述: 将两个排序链表合并为一个新的排序链表 样例 给出 1->3->8->11->15->null,2->null, 返回1->2->3->8->11->15->null。 解题思路: 首先考虑至少有一个链表为空的时候,然后需注意两个链表长度不同时的情况。 代码: /** * Definition of ListNode * class ListNo原创 2017-03-31 19:01:09 · 131 阅读 · 0 评论 -
删除排序链表中的重复元素
问题描述: 给定一个排序链表,删除所有重复的元素每个元素只留下一个。 样例 给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->nul 解题思路: 当两个节点数值相等时,删掉cur,注意连续三个及以上节点值相同的情况。 代码: /** * Definition of ListNode * class原创 2017-03-31 19:23:31 · 165 阅读 · 0 评论 -
链表划分
问题描述: 给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。 你应该保留两部分内链表节点原有的相对顺序。 样例 给定链表 1->4->3->2->5->2->null,并且 x=3 返回 1->2->2->4->3->5->null 解题思路: 新建两个链表,比较每个节点与给定值的大小关系,放入两个两表之一,最后再合成一个链表。 代原创 2017-03-31 19:37:48 · 190 阅读 · 0 评论