
leetcode
小象一只
刚开始学习图像处理知识
展开
-
[Leetcode 142] Linked List Cycle II
题目 不用额外的空间,返回单链表中环的入口。分析 利用快慢指针的方法判断该单链表是否有环,一个指针从快慢指针相遇的位置,一个指针从链表头结点位置,同时每次移动一步,在两个指针相遇的地方就是单链表环的入口推导 代码/** * Definition for singly-linked list. * struct ListNode { * int val; * Lis原创 2015-07-26 20:19:25 · 284 阅读 · 0 评论 -
237、Delete Node in a Linked List [Leetcode]
题目 给定单链表的一个节点(不是最后一个节点),请删除它分析 没有表头,如何找到这个节点的前一个节点? 方法:采用“懒删除”,当前节点复制下一个节点的内容,然后删除下一个节点C代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *n原创 2015-07-25 18:45:33 · 355 阅读 · 0 评论 -
206、Reverse Linked List [Leetcode]
题目描述分析 思路:把当前节点作为已经翻转结果的新表头节点C代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* h原创 2015-07-25 18:33:37 · 346 阅读 · 0 评论 -
[Leetcode 141] Linked List Cycle
题目判断单链表里是否有环分析 用两个指针P1和P2,P1每次走一步,P2每次走两步,如果链表中有环,两个指针一定会在环中相遇。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x)原创 2015-07-26 19:55:29 · 342 阅读 · 0 评论 -
[Leetcode 25] Reverse Nodes in k-Group
题目分析 1. 方法一:题目中提到可以采用常数量个空间,所以想到了,采用一个大小为k的数组空间来存储group值,然后利用遍历k步前记录的链表起始地址,来修改这个k-Group链表的值。(修改的是链表中存储的值,而非链表指针) 2. 方法二:先遍历k步,记录k-Group链表的起始地址,和终止地址,然后调用一个链表翻转的子函数,对这个记录下起始地址和终止地址的链表翻转操作。(需要遍历两遍链原创 2015-07-26 16:39:50 · 346 阅读 · 0 评论 -
[Leetcode 234] Palindrome Linked List
题目 判断一个单向链表是否是回文链表,要求在O(n)的时间复杂度,O(1)的空间复杂度。分析 方法一:利用栈先进后出的性质,将链表的前半段压入栈中,在逐个弹出与链表后半段比较,时间复杂度O(n),但需要n/2的栈空间,空间复杂度为O(n); 方法二:翻转链表法,将链表后半段原地翻转,再将前半段、后半段依次比较,判断是否相等,时间复杂度为O(n),空间复杂度为O(1),满足题目要求。原创 2015-07-26 19:27:01 · 397 阅读 · 0 评论 -
[Leetcode 138] Copy List with Random Pointer
题目 复制带有随机指针的链表:一个单链表除了next指针外还有一个random指针随机指向任何一个元素(可能为空) 《剑指offer》上的面试题26分析代码原创 2015-07-27 10:42:21 · 1632 阅读 · 0 评论 -
[Leetcode 160] Intersection of Two Linked Lists
题目 给定两个链表,求两个单链表的交点。要求时间复杂度为O(n),空间复杂度为O(1)分析代码采用方法二/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {原创 2015-07-27 09:51:43 · 387 阅读 · 0 评论 -
92、Reverse Linked List II [Leetcode]
Reverse Linked List II 题目描述 在链表原位置上,翻转位置m到n上的结点,指遍历链表一次分析 如何找到第m个元素和第n个元素 如何处理前面和后面 1.保存前面部分最后一个元素 2. 保存后面部分第一个元素 3. 特殊情况都有哪些:是否需要修改头指针C代码/** * Definition for singly-linked list. *原创 2015-07-25 18:18:31 · 350 阅读 · 0 评论