鏈表中環的入口結點——牛客劍指offer


題目描述:

給一個鏈表,若其中包含環,請找出該鏈表的環的入口結點,否則,輸出null。

題目分析:

從上圖中可以看出,環的入口結點和其他結點的區別:環的入口結點是有兩個指針指向的,其他結點除了頭結點都是只有一個指針指向的,

使用斷鏈法,在當前結點訪問完畢后,斷掉指向當前結點的指針。因此,最后一個被訪問的結點一定是入口結點。

代碼實現:

 1 /*
 2 public class ListNode {  3  int val;  4  ListNode next = null;  5 
 6  ListNode(int val) {  7  this.val = val;  8  }  9 } 10 */
11 public class circle { 12     public ListNode EntryNodeOfLoop(ListNode pHead) 13  { 14         ListNode newHead=pHead; 15         ListNode preNode=newHead; 16         ListNode walkNode=newHead.next; 17         if (preNode == null || preNode.next == null){ 18            return null; 19  } 20         while(walkNode!=null){ 21             preNode.next=null; 22             preNode=walkNode; 23             walkNode=walkNode.next; 24  } 25  System.out.println(pHead.next); 26  System.out.println(preNode); 27         return preNode; 28  } 29 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM