0
点赞
收藏
分享

微信扫一扫

【力扣142】环形链表

郝春妮 2022-03-12 阅读 74

思路1

将节点依次放进set中,第一个放不进去的节点就是相遇节点

思路2

1、设置一个快指针,每次走两步;一个慢指针,每次走一步;
2、如果快指针遇到null,那就说明没环
3、等到快指针和慢指针相遇,快指针指向头节点
4、这次快指针一次走一步,直到相遇

代码

public ListNode detectCycle(ListNode head) {
        ListNode quickCur = head;
        ListNode lessCur = head;
        do {
            if (quickCur!=null && quickCur.next != null ) {
                quickCur = quickCur.next.next;
                lessCur = lessCur.next;
            } else {
                return null;
            }
        } while (quickCur != lessCur);
        quickCur = head;
        while(quickCur != lessCur){
            quickCur = quickCur.next;
            lessCur = lessCur.next;
        }    
        return quickCur;

    }
举报

相关推荐

0 条评论