《剑指Offer》面试题56:链表中环的入口节点
来源:互联网 发布:在线答题软件高中 编辑:程序博客网 时间:2024/04/28 19:21
题目:一个链表中包含环,如何找出环的入口节点?
1.首先判断该链表中是否存在环(使用快慢指针来判断); 2.如果存在环,设环的节点为m个,快指针经过的节点数为2n个,慢指针经过的节点为n个,那么快指针所走的节点为n2比慢指针n1走的节点数多m(即2n=m+n)个,所以n1和n2相交的位置为链表的第n个节点,重置n1或者n2都可以找到环的入口。
package com.test20160709;/** * Created by yan on 2016/7/9. */public class EntryNodeOfLoop { public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public ListNode EntryNodeOfLoop(ListNode pHead) { if(pHead==null||pHead.next==null) return null; ListNode n1 = pHead; ListNode n2 = pHead; while (n2!=null&&n2.next!=null){ n1 = n1.next; n2 = n2.next.next; if(n2==null) return null; if(n1==n2) break; } n1 = pHead; while (n1!=n2){ n1 = n1.next; n2 = n2.next; } return n1; }}
0 0
- 《剑指Offer》面试题56:链表中环的入口节点
- 剑指offer--面试题23:链表中环的入口节点
- 【剑指offer】面试题23:链表中环的入口节点
- 剑指Offer面试题56:链表中环的入口节点 Java实现
- 剑指offer面试题56 链表中环的入口节点(java实现)
- 面试题56:链表中环的入口节点
- 【剑指Offer学习】【面试题56:链表中环的入口结点】
- 剑指offer-面试题56:链表中环的入口结点
- 剑指offer--面试题56:链表中环的入口结点
- 剑指offer-面试题56-链表中环的入口结点
- 剑指offer 面试题56 链表中环的入口结点
- 【剑指Offer】面试题56:链表中环的入口结点
- [剑指offer]面试题56:链表中环的入口结点
- 剑指Offer 面试题23:链表中环的入口节点 Java代码实现
- 《剑指Offer》学习笔记--面试题56:链表中环的入口结点
- 剑指Offer:链表中环的入口节点
- 剑指offer-链表中环的入口节点-php
- 剑指offer----链表中环的入口节点
- VIJOS 1889 天真的因数分解
- The best way to get unique elements of a list in Python
- Android之BroadReceiver的使用
- 字符相关
- [仙人掌 并查集 组合计数] BZOJ 4450 [Neerc2015]Cactus Jubilee
- 《剑指Offer》面试题56:链表中环的入口节点
- 用Maven创建Dynamic Web(动态网页)项目
- 【JZOJ4598】准备食物
- Parquet与ORC:高性能列式存储格式
- OPENXML经验
- HTTPS 能否避免流量劫持?
- 励志戒懒,追逐梦想,让我们一同在路上
- Android产品研发(十九)-->Android studio中的单元测试
- BZOJ 2440 [中山市选2011]完全平方数