zoukankan      html  css  js  c++  java
  • 环形链表

    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) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        bool hasCycle(ListNode *head) {
            ListNode * fast; 
            ListNode * slow;
            if(head==nullptr || head->next==nullptr) return false;
            //nullptr是c++11为了解决NULL可能被编译为0这个问题,才有的,空指针
            else{
                fast=head;  
                slow=head;
                 while(fast->next!=nullptr && fast->next->next!=nullptr)
                 {      
                     fast=fast->next->next;
                     slow=slow->next;
                     if(fast==slow) return true;
                 }
                 return false;
             }
        }
    };
  • 相关阅读:
    Python 魔术方法
    Python 类和对象-上
    Python 日期时间相关
    Python OS模块
    Python文件操作
    Python集合操作
    Python字典操作
    为什么最小帧长度是64字节
    字典_ 三级菜单
    cart_购物车小程序
  • 原文地址:https://www.cnblogs.com/Bipolard/p/9988135.html
Copyright © 2011-2022 走看看