ListCycle2
来源:互联网 发布:淘宝新店促销活动 编辑:程序博客网 时间:2024/05/11 20:08
题目描述
Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull.
Follow up:
Can you solve it without using extra space?
算法:
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode detectCycle(ListNode head) { ListNode fast=head,slow=head; while(fast!=null&&fast.next!=null){ fast=fast.next.next; slow=slow.next; if(fast==slow){ slow=head; while(fast!=slow){ fast=fast.next; slow=slow.next; } return fast; } } return null; }}
分析:
2*(a+b)=a+b+n*(b+c)可得
a=n*(b+c)-b
0 0
- ListCycle2
- 【Appium】Could not detect Mac OS X Version from sw_vers output: '10.12
- 双机调试和windbg的命令
- 二叉树深度优先遍历和广度优先遍历【C++】
- ofbiz方法一 条件查询createConditionList
- Android实现开机自启动某个程序
- ListCycle2
- android.content.ActivityNotFoundException: Unable to find explicit activity class
- BZOJ4332: JSOI2012 分零食
- 深入理解Activity的生命周期
- java实验3.(4)组合的使用例子
- HTTP深入浅出 http请求
- 主力洗盘无非是用这几招,你都知道吗?
- 中断技术学习
- Wireshark将udp包作为rtp包解析