【easy】141. Linked List Cycle】的更多相关文章

非常简单的题:判断链表有没有环(用快慢指针) /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: bool hasCycle(ListNode *head) { if (head == NULL) return false…
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? 解法一: 使用unordered_map记录当前节点是否被访问过,如访问过说明有环,如到达尾部说明无环. /** * Definition for singly-linked list. * struct ListNode { * int va…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 保存已经走过的路径 日期 [LeetCode] 题目地址:https://leetcode.com/problems/linked-list-cycle/ Total Accepted: 102417 Total Submissions: 277130 Difficulty: Easy 题目描述 Given a linked list, de…
题目: Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using extra space? 提示: 首先,题目中要求'without using extra space',指的是空间复杂度必须控制在O(1)内. 因此可以创建两个变量,先同时指向head,然后每一轮循环中,令其中一个变量沿链表向前“走”两步,另一个走“一步”,这样的话每一个循环后他们两者的距离差会…
Difficulty:medium  More:[目录]LeetCode Java实现 Description 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? Intuiti…
Linked List Cycle II Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up:Can you solve it without using extra space? 解法一: 使用unordered_map记录当前节点是否被访问过,如访问过返回该节点,如到达尾部说明无环. /** * Definition for sing…
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space? (二)解题 本题大意:给定一个链表,判断链表里面是否成环.不能用辅助空间. 解题思路:利用快…
#-*- coding: UTF-8 -*- #Method:快慢指针法,建立虚表头,快指针走两步,慢指针走一步,若存在环,则快指针会追上慢指针# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution(object):    def hasCycle(s…
题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Example Given -21->10->4->5, tail connects to node index 1,return 10   题解: Solution 1 () class Solution { public: ListNode *detectCycle(ListNode *…
题目: Given a linked list, determine if it has a cycle in it. Example Given -21->10->4->5, tail connects to node index 1, return true 题解: Solution 1 () class Solution { public: bool hasCycle(ListNode *head) { if (!head) { return false; } ListNode*…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 set 日期 题目地址:https://leetcode.com/problems/linked-list-cycle-ii/description/ 题目描述 Given a linked list, return the node where the cycle begins. If there is no cycle, return n…
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 --> 5 题目很简单,注意链表首结点有可能更改时,需新建preHead结点,或者使用二维指针的编程方法. /** * Defin…
题目: Reverse a singly linked list. 解题: 反转单链表,不再多介绍了. 如果会“先条件->定参数->确定不变式->验证后条件”的思维方法,一定会bug free. /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class So…
141. Linked List Cycle[easy] 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; * ListNode *next; * ListNode(int x…
142. Linked List Cycle II[easy] 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? 解法一: /** * Definition for singl…
引入 快慢指针经常用于链表(linked list)中环(Cycle)相关的问题.LeetCode中对应题目分别是: 141. Linked List Cycle 判断linked list中是否有环 142. Linked List Cycle II 找到环的起始节点(entry node)位置. 简介 快指针(fast pointer)和慢指针(slow pointer)都从链表的head出发. slow pointer每次移动一格,而快指针每次移动两格. 如果快慢指针能相遇,则证明链表中有…
160. Intersection of Two Linked Lists[easy] 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 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3 begin to intersect at n…
206. Reverse Linked List[easy] Reverse a singly linked list. Hint: A linked list can be reversed either iteratively or recursively. Could you implement both? 解法一: class Solution { public: ListNode* reverseList(ListNode* head) { ListNode * pre = NULL;…
203. Remove Linked List Elements[easy] 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 --> 5 Credits:Special than…
237. Delete Node in a Linked List[easy] 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, the l…
234. Palindrome Linked List[easy] 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 { * int val; * ListNode *next; * Lis…
141. Sqrt(x) [easy] Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 sqrt(4) = 2 sqrt(5) = 2 sqrt(10) = 3 Challenge  O(log(x)) 解法一: class Solution { public: /* * @param x: An integer * @return: The sqrt of x */…
[2]Add Two Numbers (2018年11月30日,第一次review,ko) 两个链表,代表两个整数的逆序,返回一个链表,代表两个整数相加和的逆序. Example: Input: ( -> -> ) + ( -> -> ) Output: -> -> Explanation: + = . /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *…
83. Remove Duplicates from Sorted List[easy] 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. 解法一: /** * Defin…
21. Merge Two Sorted Lists[easy] 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 list. * struct ListNode { * int val…
题目: 141.Given a linked list, determine if it has a cycle in it. 142.Given a linked list, return the node where the cycle begins. If there is no cycle, return null. 思路: 带环链表如图所示.设置一个快指针和一个慢指针,快指针一次走两步,慢指针一次走一步.快指针先进入环,慢指针后进入环.在进入环后,可以理解为快指针追赶慢指针,由于两个指…
判断链表有环,环的入口结点,环的长度 1.判断有环: 快慢指针,一个移动一次,一个移动两次 2.环的入口结点: 相遇的结点不一定是入口节点,所以y表示入口节点到相遇节点的距离 n是环的个数 w + n + y = 2 (w + y) 经过化简,我们可以得到:w  = n - y; https://www.cnblogs.com/zhuzhenwei918/p/7491892.html 3.环的长度: 从入口结点或者相遇的结点移动到下一次再碰到这个结点计数 https://blog.csdn.ne…
141. 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? 利用快慢指针,如果相遇则证明有环 注意边界条件: 如果只有一个node. public class Solution { public boolean hasCycle(ListNode head) { if(head==null |…
170. Two Sum III - Data structure design[easy] Design and implement a TwoSum class. It should support the following operations:add and find. add - Add the number to an internal data structure.find - Find if there exists any pair of numbers which sum…
121. Best Time to Buy and Sell Stock[easy] Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an…