Leetcode-----链表
文章平均质量分 61
qq_2773878606
学生
展开
-
求有环单链表的环连接点位置
第一次碰撞点Pos到连接点Join的距离=头指针到连接点Join的距离,因此,分别从第一次碰撞点Pos、头指针head开始走,相遇的那个点就是连接点。在环上相遇后,记录第一次相遇点为Pos,连接点为Join,假设头结点到连接点的长度为LenA,连接点到第一次相遇点的长度为x,环长为R。 第一次相遇时,slow走的长度 S = LenA + x; 第一次相遇时原创 2016-07-19 21:58:42 · 645 阅读 · 0 评论 -
Remove Duplicates from Sorted ListII
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice?For example,Given sorted array A = [1,1,1,2,2,3],Your function should return length = 5, and A is now [1,1,2,2,3]原创 2016-07-05 16:46:39 · 275 阅读 · 0 评论 -
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.Subscribe to see wh原创 2015-12-07 08:48:26 · 201 阅读 · 0 评论 -
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->原创 2016-07-20 08:20:08 · 307 阅读 · 0 评论 -
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原创 2016-07-20 08:39:48 · 249 阅读 · 0 评论 -
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原创 2016-07-20 09:18:35 · 229 阅读 · 0 评论 -
Sort List
Sort a linked list in O(n log n) time using constant space complexity.用归并排序/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode原创 2016-07-20 09:30:56 · 253 阅读 · 0 评论 -
Insertion Sort List
插入排序是一种O(n^2)复杂度的算法,基本想法相信大家都比较了解,就是每次循环找到一个元素在当前排好的结果中相对应的位置,然后插进去,经过n次迭代之后就得到排好序的结果了。了解了思路之后就是链表的基本操作了,搜索并进行相应的插入。时间复杂度是排序算法的O(n^2),空间复杂度是O(1)。/** * Definition for singly-linked list. * struct L原创 2016-07-20 09:47:54 · 222 阅读 · 0 评论 -
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 t原创 2016-07-20 09:58:00 · 288 阅读 · 0 评论 -
Reverse Linked List II
Reverse a linked list from position m to n. Do it in-place and in one-pass.For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,return 1->4->3->2->5->NULL.Note:Given m, n satisfy t原创 2016-07-20 10:56:38 · 285 阅读 · 0 评论 -
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原创 2016-07-20 11:14:37 · 228 阅读 · 0 评论 -
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原创 2016-07-21 18:50:41 · 208 阅读 · 0 评论 -
输出链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。分类:链表解法1:双指针,第一个指针先走k步,然后第二个指针也开始走,当第一个指针到达末尾,第二个指针也就是到了倒数第k个节点要注意null链表和链表长度不足k的情况/*public class ListNode { int val; ListNode next = nu原创 2016-07-19 21:49:39 · 216 阅读 · 0 评论 -
Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Note: Do not modify the linked list.Follow up:Can you solve it without using extra space?原创 2016-07-19 21:36:53 · 211 阅读 · 0 评论 -
Linked List Cycle
Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?Subscribe to see which companies asked this question/** * Definition for si原创 2016-07-19 21:30:15 · 199 阅读 · 0 评论 -
求有环单链表的链表长
#include #include typedef struct node{ int value; struct node *next;}LinkNode,*Linklist;/// 创建链表(链表长度,环节点起始位置)Linklist createList(){ Linklist head = NULL; LinkNode *preNode = hea原创 2016-07-19 21:59:18 · 242 阅读 · 0 评论 -
求有环单链表的环长
在环上相遇后,记录第一次相遇点为Pos,之后指针slow继续每次走1步,fast每次走2步。在下次相遇的时候fast比slow正好又多走了一圈,也就是多走的距离等于环长。设从第一次相遇到第二次相遇,设slow走了len步,则fast走了2*len步,相遇时多走了一圈: 环长=2*len-len。int getRingLength(LinkNode *meetNode){原创 2016-07-19 21:54:42 · 278 阅读 · 0 评论 -
从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。分类:链表,栈解法1:反过来打印。显然,先入栈,再出栈即可。/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this原创 2016-07-19 21:50:31 · 253 阅读 · 0 评论 -
Delete Node in a Linked List
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 val原创 2016-07-19 17:36:00 · 229 阅读 · 0 评论 -
Remove Linked List Elements
Remove all elements from a linked list of integers that have value val.ExampleGiven: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6Return: 1 --> 2 --> 3 --> 4 --> 51、因为可能有表头是val的情况,设置辅原创 2016-07-19 19:44:29 · 223 阅读 · 0 评论 -
Palindrome Linked List
Given a singly linked list, determine if it is a palindrome.Follow up:Could you do it in O(n) time and O(1) space?判断是不是回文链表/** * Definition for singly-linked list. * struct ListNode原创 2015-12-07 22:11:55 · 244 阅读 · 0 评论 -
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:A: a1 → a2 ↘原创 2015-12-12 18:21:29 · 320 阅读 · 0 评论 -
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.Subscribe to see which companies asked this questio原创 2015-12-07 08:48:44 · 256 阅读 · 0 评论 -
Reverse Linked List
Reverse a singly linked list.click to show more hints.Hint:A linked list can be reversed either iteratively or recursively. Could you implement both?|prev |cur |next v v v原创 2015-12-07 21:31:50 · 239 阅读 · 0 评论 -
Add Two Numbers
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-11-26 23:04:15 · 270 阅读 · 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原创 2015-12-07 22:29:11 · 250 阅读 · 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.Subscribe to see which compan原创 2016-07-21 18:53:07 · 291 阅读 · 0 评论