zoukankan      html  css  js  c++  java
  • 链表中环的入口

    题目:一个链表中包含环,请找出该链表的环的入口结点。

    思路:先判断有没有环,设快慢指针,快的走两步,慢的走一步,直到指向同一个节点,此时再让快指针从头走,慢指针从刚才的位置,两指针一起走,直到指向一致

     public ListNode EntryNodeOfLoop(ListNode pHead)
        {
            ListNode fast=pHead;
            ListNode slow=pHead;
             
            ListNode cur=pHead;
            while(cur!=null){
                if (fast.next==null||fast.next.next==null) {
                    return null;
                }
                fast=fast.next.next;
                slow=slow.next;
                if(slow==fast){
                    break;
                }
                cur=cur.next;
            }
             
            fast=pHead;
            while(fast!=slow){
                fast=fast.next;
                slow=slow.next;
            }
            return slow;
        }

     来更新一个鬼畜的解

    HashSet<ListNode> set = new HashSet<ListNode>(); 
    
          while (pHead != null) { 
             if (!set.add(pHead)) { //这里判断已经插入了
                return pHead;
          pHead = pHead.next; 
    
      } 
    
      return    null;                    

     补一问,判断是是否有环

        if(head == null) return false;
            ListNode slow = head , fast = head;
            while(fast.next != null && fast.next.next != null){
                slow = slow.next;
                fast = fast.next.next;
                if(fast == slow)
                    return true;
            }
            return false;
        }
  • 相关阅读:
    jQuery让渡$操作符
    JSON
    Jquery实现Ajax(二)
    Jquery实现Ajax(一)
    Javascript实现Ajax
    文章目录
    读过的书
    JVM笔记(5)-垃圾回收&内存分配策略
    JVM笔记(4)-对象及其引用
    JVM笔记(3)-内存结构&方法执行(栈帧)
  • 原文地址:https://www.cnblogs.com/team42/p/6691788.html
Copyright © 2011-2022 走看看