链表
文章平均质量分 62
pzx1997
这个作者很懒,什么都没留下…
展开
-
合并两个排序链表
题目:合并两个排序链表问题描述:将两个排序链表合并为一个新的排序链表。如:给出 1->3->8->11->15->null,2->null, 返回1->2->3->8->11->15->null。思路:先假设链表1的头结点的值小于链表2的头结点的值,然后就用链表1的头结点作为合并后的链表的头结点。然后继续合并两个链表中剩余的结点。两个链表中剩下的结点依然是排序的,所以合原创 2017-03-31 08:53:37 · 464 阅读 · 0 评论 -
删除链表中的元素
题目:删除链表中的元素问题描述:删除链表中等于给定值val的所有节点。思路:遍历整个链表,找到数据域等于val的元素,找到之后令它上一个元素的指针域指向它的下一个元素,从而使它与链表断开,即从链表中删除。代码:class Solution {public: /** * @param head a ListNode * @原创 2017-03-26 22:15:09 · 373 阅读 · 0 评论 -
翻转链表
题目:翻转链表问题描述:翻转一个链表。如:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。思路:反转指针方向。代码:class Solution {public: /** * @param head: The first node of linked list. * @return:原创 2017-03-27 20:51:59 · 238 阅读 · 0 评论 -
链表划分
题目:链表划分问题描述:给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。如:给定链表 1->4->3->2->5->2->null,并且 x=3,返回 1->2->2->4->3->5->null。思路:在给定元素左右两边分别新建两个链表。遍历给定链表,比较元素的大小。如果元素小于给定的这个元素,则原创 2017-03-27 20:54:15 · 181 阅读 · 0 评论 -
链表倒数第n个节点
题目:链表倒数第n个节点问题描述:找到单链表倒数第n个节点,保证链表中节点的最少数量为n。如:给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.思路:遍历整个链表,计数链表元素的个数。第二遍遍历链表,到倒数第n个节点处停止,输出第n个节点。代码:class Solution {public: /**原创 2017-03-28 17:13:23 · 208 阅读 · 0 评论 -
在O(1)时间复杂度删除链表节点
题目:在O(1)时间复杂度删除链表节点问题描述:给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。如:给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为1->2->4。思路:用给定节点的下个节点覆盖这个节点,从而达到删除该节点的目的。代码:class Solution {public:原创 2017-03-28 21:50:14 · 167 阅读 · 0 评论 -
删除链表中倒数第n个节点
题目:删除链表中倒数第n个节点。问题描述:给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。如:给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.思路:遍历整个链表,计数结点个数,找到倒数第n个结点,删除它。代码:class Solution {public:原创 2017-03-29 11:10:10 · 174 阅读 · 0 评论 -
删除排序链表中的重复元素
题目:删除排序链表中的重复元素问题描述:给定一个排序链表,删除所有重复的元素每个元素只留下一个。思路:遍历链表,如果一个元素的值跟下一个元素相等,删除一个。代码:class Solution {public: /** * @param head: The first node of linked list. * @ret原创 2017-03-30 22:08:07 · 164 阅读 · 0 评论 -
链表求和
题目:链表求和问题描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。如:给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null。思路:遍历两条链表,依次相加,两元素相加的商加到下一位,余数相加。原创 2017-03-31 07:57:36 · 371 阅读 · 0 评论 -
两两交换链表中的节点
题目:两两交换链表中的节点问题描述:给一个链表,两两交换其中的节点,然后返回交换后的链表。如:给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。思路:通过改变指针指向的元素改变两个元素的位置。代码:class Solution {public: /** * @param head a ListNode原创 2017-03-31 08:23:25 · 206 阅读 · 0 评论 -
链表插入排序
题目:链表插入排序问题描述:用插入排序对链表排序思路:申请新链表,插入元素,从第二个开始与之前插入的元素比较大小,如果大,就插到后面。代码:class Solution {public: /** * @param head: The first node of linked list. * @return: The he原创 2017-03-26 23:44:21 · 296 阅读 · 0 评论