Linked List Cycle
来源:互联网 发布:sql语句多表关联查询 编辑:程序博客网 时间:2024/05/18 03:49
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
Floyd判圈算法的典型应用场景
①使用Floyd判圈算法直接求解
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode slow = head; ListNode fast = head; while (fast != null && fast.next != null) { slow = slow.next; fast = fast.next.next; if (slow == fast) { return true; } } return false; }}程序中需要注意的是while循环的终止条件是(fast != null && fast.next != null),缺一不可, 否则会有问题。
②逆转链表,判断前后两个链表的头结点是否相同。如果链表有环,则逆转后的链表和初始链表的头结点是相同的。
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } if (head == reverseList(head)) { return true; } return false; } private ListNode reverseList(ListNode head) { ListNode prev = null; ListNode next = null; while (head != null) { next = head.next; head.next = prev; prev = head; head = next; } return prev; }}
0 0
- leetcode Linked List Cycle & Linked List Cycle ||
- Linked List Cycle II Linked List Cycle
- 【LeetCode】Linked List Cycle
- Leetcode: Linked List Cycle
- Leetcode Linked List Cycle
- Linked List Cycle
- Linked List Cycle II
- Linked List Cycle
- Linked List Cycle
- Linked List Cycle II
- Leetcode: Linked List Cycle
- LeetCode:Linked List Cycle
- Linked List Cycle II
- Linked List Cycle
- Linked List Cycle II
- [LeetCode]Linked List Cycle
- Linked List Cycle
- LeetCode | Linked List Cycle
- MyBatis学习总结(六)——调用存储过程
- JDK8中文文档——ServerSocket
- java的Frame和JFrame中的paint方法区别
- 使用TELNET手工操作 SMTP/POP 收发邮件
- Beginning Python Chapter1
- Linked List Cycle
- ubunt下samba服务器的配置
- CommandLineInterface
- 【转载】Template
- HDU2015偶数求和
- ExtJS中的全局变量的保存和使用
- 1006-Hive的UDF操作
- 10 条提升 Android 性能的建议
- java array数组是不是类