• 链表中环的入口


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

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

     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;
        }
  • 相关阅读:
    UITabBarController资料
    lintcode157 判断字符串是否没有重复字符
    设置TabBarItem选中时的图片及文字颜色
    扩展UIColor类
    设置UINavigationController相同标题
    iOS打开手机QQ与指定用户聊天界面
    UIWindow
    Google Test资料
    Xcode集成Google Test
    文章索引
  • 原文地址:https://www.cnblogs.com/team42/p/6691788.html
Copyright © 2020-2023  润新知