• 判断两个环形链表是否相交


    思路:如果有环且两个链表相交,则两个链表都有共同一个环,即环上任意一个结点都存在于两个链表上,
    因此,就可以判断一个链表上两指针相遇的那个结点是否也在另一个链表上

    代码如下:

            public static boolean isIntersect_I(ListNode l1,ListNode l2) {
          //定义两个标记,分别记录两个环上某一结点 ListNode sign1
    = null,sign2 = null; //首先判断两个链表是否是环路链表 if(!isCircle(l1,sign1)) return false; if(!isCircle(l2,sign2)) return false; ListNode tmp = sign1.next; //判断l1环内结点是否在l2环上 while(tmp != sign1) { if(tmp == sign2) return true; tmp = tmp.next; } return false; } //判断是否循环链表,并且标记环内结点 public static boolean isCircle(ListNode l,ListNode sign) { if(l == null) return false; ListNode f = l; ListNode s = l; while(f.next!=null) { if(f == s) { sign = f; return true; } f = f.next.next; s = s.next; } return false; }
  • 相关阅读:
    索引
    运算符优先级
    身份运算符
    成员运算符
    位运算符
    利用java编写物品的品牌、尺寸、价格、库存(新手)
    今天聊一聊nuxt.js(上)
    初入前端,面对一个项目应注意哪些?
    小型 Web 页项目打包优化方案
    跨域的那些事儿
  • 原文地址:https://www.cnblogs.com/du001011/p/10621911.html
Copyright © 2020-2023  润新知