题解 | #链表中环的入口结点#

链表中环的入口结点

http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4

/**

  • struct ListNode {
  • int val;
  • struct ListNode *next;
  • };
  • C语言声明定义全局变量请加上static,防止重复定义 / /*
  • 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
  • @param pHead ListNode类
  • @return ListNode类 / #include <stdbool.h> bool hasCycle(struct ListNode head ) { // write code here if(head == NULL) return false; struct ListNode p = head; for(int i = 1;i<10000;i++) { p = p->next; if(p == NULL) return false; } return true; } struct ListNode EntryNodeOfLoop(struct ListNode* pHead ) { // write code here if(hasCycle(pHead) == false) return NULL; struct ListNode *p1,*p2; p1 = pHead; int count = 0; for(int i = 1;i<= 10000;i++) p1 = p1->next; p2 = p1; do { count++; p1 = p1->next; }while(p1 != p2); p2 = p1 = pHead; do { p2 = p1; for( int i = 1;i<=count;i++) { p2 = p2->next;
    } if(p2 == p1) return p2; else p1 = p1->next; }while(1);

}

全部评论

相关推荐

联通 技术人员 总包不低于12
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务