链表
JohnWill_
小白一个,慢慢成长....
展开
-
链表排序Sort_List(归并)
题目:Sort a linked list in O(n log n) time using constant space complexity.因为题目要求复杂度为O(nlogn),故可以考虑归并排序的思想。 归并排序的一般步骤为: 1)将待排序数组(链表)取中点并一分为二; 2)递归地对左半部分进行归并排序; 3)递归地对右半部分进行归并排序; 4)将两个半部分进行合并(m...原创 2018-03-19 21:46:51 · 224 阅读 · 0 评论 -
Remove Nth Node From End of List
题目描述Given a linked list, remove the n th 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 ...原创 2018-04-19 09:43:46 · 87 阅读 · 0 评论 -
Merge k Sorted Lists 合并k个有序链表
题目描述Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 这道题让我们合并k个有序链表,之前我们做过一道Merge Two Sorted Lists 混合插入有序链表,是混合插入两个有序链表。这道题增加了难度,变成合并k个有序链表了,但是不管合并几个...原创 2018-04-18 21:02:23 · 151 阅读 · 0 评论 -
swap-nodes-in-pairs
题目描述Given a linked list, swap every two adjacent nodes and return its head. For example, Given1->2->3->4, you should return the list as2->1->4->3. Your algorithm should use onl...原创 2018-04-18 15:20:15 · 176 阅读 · 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 ...原创 2018-04-18 14:48:53 · 94 阅读 · 0 评论 -
Remove Duplicates from Sorted List II (删除排序链表的重复II)
题目描述Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given1->2->3->3->4->4->5, return1...原创 2018-04-03 14:29:07 · 111 阅读 · 0 评论 -
Remove Duplicates from Sorted List
题目描述Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given1->1->2, return1->2. Given1->1->2->3->3, return1->2->3. ...原创 2018-04-03 09:31:54 · 79 阅读 · 0 评论 -
Convert Sorted List to Binary Search Tree
题意:给定一个有序的链表,将其转换成平衡二叉搜索树思路: 二分法要构建一个平衡二叉树,二分法无疑是合适的,至于如何分是的代码简洁,就需要用到递归了。这题的关键是能找出当前链表的中间节点,然后再递归左右的子链表,开始的时候程序先计算链表总长,然后传入两个前后索引指针,最后每次递归找出中间节点即可。没有通过的代码: * Definition for sing...原创 2018-03-27 19:48:55 · 182 阅读 · 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 t...原创 2018-04-02 11:01:33 · 103 阅读 · 0 评论 -
Rotate List
题目描述Given a list, rotate the list to the right by k places, where k is non-negative. For example: Given1->2->3->4->5->NULLand k =2, return4->5->1->2->3->NULL. 实现代码: ...原创 2018-04-08 21:08:18 · 97 阅读 · 0 评论 -
单链表的深度拷贝
题目:A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.【题意】深拷贝一个链表,链表除了含有next指针外,还包含一个rand...原创 2018-03-21 21:36:24 · 6514 阅读 · 1 评论 -
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. 实现代码: /** * Definition for singly-linked ...原创 2018-04-08 10:53:36 · 86 阅读 · 0 评论 -
单链表是否有环?
题目:Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?实现: * Definition for singly-linked list. * struct ListNode { * int val; * ListNod...原创 2018-03-20 20:41:44 · 119 阅读 · 0 评论 -
单链表是否有环?并求出此环开始的结点位置?
题目要求Linked List CycleGiven a linked list, determine if it has a cycle in it.Follow up: Can you solve it without using extra space?如何判断一个单链表中有环?Linked List Cycle IIGiven a linked list, return the node ...原创 2018-03-20 17:25:29 · 248 阅读 · 0 评论 -
链表混插L: L 0→L 1→…→L n-1→L n,reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→…
题目:Given a singly linked list L: L 0→L 1→…→L n-1→L n,reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→…You must do this in-place without altering the nodes' values.For example,Given{1,2,3,4}, reorder it to...原创 2018-03-20 16:33:42 · 1357 阅读 · 0 评论 -
链表插入排序
题目: Sort a linked list using insertion sort.给单链表排序(升序排列,要保持稳定性),要求通过改变结点的next指针从而改变结点的位置,而不是只交换结点的值来使得其有序!时间复杂度为O(N^2),空间复杂度为O(1)。这个算法的思想是这样的: 1. 维护两部分,一是已排序的部分,一是待排序的部分; 2. 一开始已排序部分为NULL; 3. 每次取出待排序部...原创 2018-03-20 11:15:47 · 149 阅读 · 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 ...原创 2018-04-20 08:53:12 · 118 阅读 · 0 评论