LinkedList
文章平均质量分 78
Bryan要加油
这个作者很懒,什么都没留下…
展开
-
Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.For example,Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant space. Y原创 2015-06-06 09:40:55 · 631 阅读 · 0 评论 -
83. Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3.注意while循环的判断/** * Defi原创 2015-06-29 20:18:53 · 425 阅读 · 0 评论 -
92. Reverse Linked List II
对这种链表题还是比较混啊。。。。多看看参考http://www.cnblogs.com/remlostime/archive/2012/11/18/2776273.html原创 2015-04-21 09:03:16 · 390 阅读 · 0 评论 -
109. Convert Sorted List to Binary Search Tree
这题的关键是能找出当前链表的中间节点,然后再递归左右的子链表,开始的时候程序先计算链表长度,然后传入两个前后索引指针,最后每次递归找出中间节点即可。//http://www.cnblogs.com/remlostime/archive/2012/10/29/2744805.html/** * Definition for singly-linked list. * struct List原创 2015-04-21 10:56:09 · 576 阅读 · 0 评论 -
143. Reorder List
Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given {1,2,3,4}, reorder it to原创 2015-06-03 21:23:55 · 453 阅读 · 0 评论 -
148. Sort List
Sort a linked list in O(n log n) time using constant space complexity.把List中的元素放入vector中,利用algorithm中的sort对vector排序后,再重建list。/** * Definition for singly-linked list. * struct ListNode { *原创 2015-05-07 08:59:33 · 409 阅读 · 0 评论 -
328. Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.You should try to do it in p原创 2016-01-18 21:37:48 · 757 阅读 · 0 评论 -
61. Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative.For example:Given 1->2->3->4->5->NULL and k = 2,return 4->5->1->2->3->NULL./** * Definition for s原创 2014-03-10 21:16:59 · 475 阅读 · 0 评论 -
160. Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists: begin to intersect at node c1.Notes: •If the two linked lists原创 2016-03-26 22:58:58 · 362 阅读 · 0 评论 -
82. Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.For example,Given 1->2->3->3->4->4->5, return 1->2->5.Given 1->1-原创 2015-06-29 21:01:20 · 867 阅读 · 0 评论 -
206. Reverse Linked List&反转链表
Reverse a singly linked list./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solu原创 2015-05-05 11:48:02 · 567 阅读 · 0 评论 -
147. Insertion Sort List
Sort a linked list using insertion sort.一开始的第路是对的,但是。。问题就在没把两个链表断开。。。LeetCode(147)Insertion Sort List这篇文章不错/** * Definition for singly-linked list. * struct ListNode { * int val; *原创 2014-03-12 22:57:25 · 681 阅读 · 0 评论 -
25. Reverse Nodes in k-Group
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is原创 2015-06-06 10:05:19 · 781 阅读 · 0 评论 -
234. Palindrome Linked List&回文链表
题目描述请编写一个函数,检查链表是否为回文。 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。 测试样例: {1,2,3,2,1} 返回:true {1,2,3,2,3} 返回:false解答翻转并比较 反转整个链表,然后比较反转链表和原始链表。若二者相同,则该链表为回文。 注意链表反转算法的使用,不能修改原始链表。/*struct List原创 2016-03-01 21:24:04 · 609 阅读 · 0 评论 -
138. Copy List with Random Pointer&复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。解答暴力法 可以把复制过程分为两步: 1. 复制原始链表上的每个结点,并用next连接起来 2. 设置每个结点的random指针。 假设原始链表中的某个结点N的random指向结点S,由于S的位置在链表中可能在N的前面,也可能在N的后面,所以要定位S的位置需要从原始链表的原创 2016-02-29 16:17:52 · 462 阅读 · 0 评论 -
数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。解答使用哈希表,空间复杂度为O(n) bool duplicate(int numbers[], int length, i原创 2016-02-25 10:44:55 · 1164 阅读 · 0 评论 -
Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative.For example:Given 1->2->3->4->5->NULL and k = 2,return 4->5->1->2->3->NULL.1/** * Definition fo原创 2015-06-26 09:15:49 · 340 阅读 · 0 评论 -
Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.优先级队列~~~~~priority_queue priority_queue priority_queue priority_queue!!!!!!!!!学习!!!!class So原创 2015-06-06 09:15:20 · 677 阅读 · 0 评论 -
237. Delete Node in a Linked List&在O(1)时间删除链表结点
题目Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3,原创 2016-03-01 15:08:33 · 384 阅读 · 0 评论 -
86. Partition List&链表分割
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.You should preserve the original relative order of the nodes in each of t原创 2014-03-10 14:56:14 · 788 阅读 · 0 评论 -
2.Add Two Numbers&链式A+B
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link原创 2015-06-03 23:10:13 · 517 阅读 · 0 评论 -
孩子们的游戏(圆圈中最后剩下的数)&约瑟夫问题I
题目0,1,2,…,n-1这n个数字排成一个圆圈。从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0,1,2,3,4,5这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前四个数字依次是2、0、4,因此最后剩下的数字就是3。 约瑟夫环问题解答 既然题目中有一个数字圆圈,很容易想到用环形链表来模拟这个圆圈。我们可以创建一个有n个结点的环形原创 2016-02-27 11:47:26 · 588 阅读 · 0 评论 -
235. Lowest Common Ancestor of a Binary Search Tree&236. Lowest Common Ancestor of a Binary Tree
问题描述235.Lowest Common Ancestor of a Binary Search TreeGiven a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikiped原创 2016-03-03 09:48:27 · 311 阅读 · 0 评论 -
141. Linked List Cycle & 142. Linked List Cycle II
步骤1:判定是否有环慢指针sp,每次前进一步快指针fp,每次前进两步如果慢指针与快指针在前进n次之后指向相同的位置,则存在环;否则,如果fp->next为NULL或fp->next->next为NULL,则不存在环。步骤2:如果存在环,返回环的入口结点 设链表的头结点为X,还的入口结点为Y,快慢指针第一次相遇的点为Z。XY之间的长度为a,YZ之间的长度为b,ZY之间的长度为c。 第原创 2016-02-17 10:55:50 · 377 阅读 · 0 评论 -
从尾到头打印链表
题目输入一个链表,从尾到头打印链表每个节点的值。 将链表逆序后输出首先将链表逆序,然后从头到尾输出。但是该方法会改变原来的链表结构。下面给出将链表逆序的代码。ListNode* reverseList(ListNode* head) { if(!head || !head->next) return head; ListNode *p = he原创 2016-02-18 10:47:23 · 371 阅读 · 0 评论 -
21. Merge Two Sorted Lists &合并两个排序的链表
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.下面的代码ac/** * Definition for singly-linked list. * s原创 2014-02-24 14:57:56 · 618 阅读 · 0 评论 -
链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。解答为了实现只遍历链表一遍,就能找到倒数第k个结点,我们可以定义两个指针。第一个链表从链表头开始走k步之后,第二个链表从链表头开始走。当第一个指针到达链表尾部的NULL时,第二个指针所指的就是我们要找的结点。ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { i原创 2016-02-24 22:16:57 · 350 阅读 · 0 评论 -
Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the原创 2014-02-23 17:18:45 · 624 阅读 · 0 评论 -
两个链表的第一个公共结点
题目描述输入两个链表,找出它们的第一个公共结点。解答暴力法 在第一个链表上顺序遍历每个结点,每遍历到一个结点时,在第二个链表上遍历每个结点。如果在第二个链表上有一个结点和第一个链表上当前遍历的结点一样,说明两个链表在这个结点上重合。如果第一个链表的长度为m,第二个链表的长度为n,那么该算法的时间复杂度为O(m*n)。使用两个栈 因为该题中两个链表都是单链表,所以如果二者有公共结点,那么从该结原创 2016-02-25 09:20:25 · 563 阅读 · 0 评论 -
2.Add Two Numbers
ProblemYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as翻译 2016-08-12 15:07:45 · 426 阅读 · 0 评论