链表
益达915
一名在读大学生,渣渣一枚,进取中...
展开
-
王道数据结构课后习题 | P37
3、设L为带头节点的单链表,编写算法实现从尾到头反向输出每个节点的值。 我想到的是reverse一下/笑哭 想想这个就有点杀鸡用牛刀的感觉… 看了题解说是可以用递归…卧槽瞬间orzclass Solution{public: //利用递归解决 void reverseOut(ListNode* head){ if(head->next!=NULL)原创 2016-08-03 00:48:18 · 1400 阅读 · 0 评论 -
LeetCode | 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原创 2016-08-02 20:00:18 · 214 阅读 · 0 评论 -
LeetCode | Linked List Cycle I,II
Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space?这道题想做出来不难,关键是快慢指针这种一般想不到。。 一般想到的是拿哈希存储已经经过的pointer 这种空间复杂度O(n) 快慢指针这个很巧妙,设置两个指针fas原创 2016-08-02 11:27:30 · 245 阅读 · 0 评论 -
LeetCode | Copy List with Random Pointer
拷贝一个带随机指针的链表 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.这道题的思路很重要… 首先原创 2016-08-02 09:31:34 · 406 阅读 · 0 评论 -
LeetCode | Reverse Nodes in k-Group
链表的反转 写的是生无可恋啊… 我的思路….其实和正确答案都差不多,但是一直ce调不出来… 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原创 2016-08-01 23:49:06 · 211 阅读 · 0 评论 -
LeetCode | 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原创 2016-07-31 19:29:15 · 263 阅读 · 0 评论 -
LeetCode | 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原创 2016-07-31 23:07:41 · 234 阅读 · 0 评论 -
LeetCode | 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 en原创 2016-07-31 21:56:18 · 219 阅读 · 0 评论 -
LeetCode | Rotate List
一开始想错了,以为要在k的位置旋转 其实是要循环滚动地推k次,比如 [1,2] 2 结果应当为[1,2],以为推一圈又回来了 而 [1,2] 3 则应当是[2,1]效果和1是一样的于是加一个mod判断就好了class Solution {public: ListNode* rotateRight(ListNode* head, int k) { //空或左原创 2016-07-31 20:57:03 · 231 阅读 · 0 评论 -
LeetCode | 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 eac原创 2016-07-31 17:29:33 · 255 阅读 · 0 评论 -
LeetCode | Reverse Linked List II
这道链表反转题也是搞的我焦头烂额,好久没有写链表了,注意记忆这些 Reverse Linked List II QuestionEditorial Solution My Submissions Total Accepted: 78774 Total Submissions: 274380 Difficulty: Medium Reverse a linked list from原创 2016-07-31 16:48:43 · 207 阅读 · 0 评论 -
LeetCode | Add Two Numbers
之前都是好些题目为一个小章节放在一起在csdn上面的,还是分开吧这样可以更加清楚一点这道题卡了我好久, 一来是好久没有写指针操作 二来是初次使用leetcode,它对于指针的操作和之前自己的习惯不一样。还是mark一下吧。 虽然代码跟翔一样,但是这是自己一步步推导的过程/** * Definition for singly-linked list. * struct ListNode {原创 2016-07-31 16:43:43 · 242 阅读 · 0 评论 -
LeetCode | 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?嗯,判断链表是回文。1、将链表复制一份到另一个反转链表,同时遍历,时间空间O(n)2、将链表拍成一个数组,遍历数组,时间空间O(n)原创 2016-08-31 22:19:17 · 263 阅读 · 0 评论