本文主要是介绍[leetcode 141环形链表]双指针解决环形链表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Problem: 141. 环形链表
文章目录
- 思路
- Code
思路
首先想到如果链表为空直接返回false
其次想到用双指针,一个一回走一步,另一个一回走两步
如果是环形,总有一个时刻,两指针会指向同一个节点,而且该结点不能为空(空是快指针遍历完单链表了)
Code
/*** 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) {ListNode left = head, right = head;if(head == null){return false;}while(right != null && right.next != null){left = left.next;right = right.next.next;if(left == right && left != null){return true;}}return false;}
}
这篇关于[leetcode 141环形链表]双指针解决环形链表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!