判断有环链表是否相交
来源:互联网 发布:右上角th mac 编辑:程序博客网 时间:2024/06/05 21:16
有环链表相交,首先两链表都要有环,一个有环一个无环不可能相交。
有环链表相交有三种情况
则只需要判断是否共有一个环就行。
思路:分别取两链表上两个环内结点node1和node2,然后让node1遍历,如果与node2相遇,则代表位于一个环,反之,则不想交。
//求环中相遇结点 public Node cycleNode(Node head){ //链表为空则返回null if(head == null) return null; Node first = head; Node second = head; while(first != null && first.next != null){ first = first.next.next; second = second.next; //两指针相遇,则返回相遇的结点 if(first == second) return first; } //链表无环,则返回null return null; }public boolean isIntersectWithCycle(Node head1,Node head2){ //node1和node2保存环上的一点 Node node1 = cycleNode(head1); Node node2 = cycleNode(head2); //如果不存在环上的一点,则代表无环 if(node1 == null || node2 == null) return false; Node current = node1.next; while(current != node1){ //若current与node2相遇,则代表两链表共享一个环即相交 if(current == node2) return true; current = current.next; } return false; }
0 0
- 判断有环链表是否相交
- 判断俩个链表是否相交
- 判断俩链表是否相交
- 判断俩个链表是否相交
- 判断俩链表是否相交
- 判断矩形是否相交
- 判断俩个链表是否相交
- 判断两条单链表是否相交
- 判断这俩个链表是否相交
- 判断两链表是否相交
- 判断俩个链表是否相交
- 判断线段是否相交
- 判断俩单链表是否相交
- 判断两链表是否相交
- 判断无环链表是否相交
- 判断两单链表是否相交
- 单链表判断是否相交
- 判断两线段是否相交
- Hibernate 初相识(一)Hibernate API 详解,配置文件,映射文件详解。
- 【Java网络编程】TCP协议(含代码)
- spring Cglib is useful but a class @Transactional don't proxy
- 【DP】17.2.7 T3 多米诺骨牌 题解
- 2017.1
- 判断有环链表是否相交
- C++之拷贝构造函数
- MD和MT区别
- activity和service之间如何进行通信?
- ssh远程操控mysql
- centos 6.5下KVM环境搭建
- 正则表达式
- 迷瘴
- c++教程(二十四:Preprocessor directives)