連結串列中環的入口結點
題目描述
給一個連結串列,若其中包含環,請找出該連結串列的環的入口結點,否則,輸出null。
題目連結: 連結串列中環的入口結點
程式碼
import java.util.ArrayList;
import java.util.List;
/**
* 標題:連結串列中環的入口結點
* 題目描述
* 給一個連結串列,若其中包含環,請找出該連結串列的環的入口結點,否則,輸出null。
* 題目連結:
* https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4?tpId=13&&tqId=11208&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
*/
public class Jz55 {
public ListNode entryNodeOfLoop(ListNode pHead) {
if (pHead == null || pHead.next == null) {
return null;
}
List<ListNode> nodes = new ArrayList<ListNode>();
ListNode node = pHead;
while (node != null) {
if (nodes.contains(node)) {
return node;
} else {
nodes.add(node);
node = node.next;
}
}
return null;
}
public static void main(String[] args) {
ListNode root = new ListNode(1);
ListNode node1 = new ListNode(2);
ListNode node2 = new ListNode(3);
ListNode node3 = new ListNode(4);
ListNode node4 = new ListNode(5);
root.next = node1;
node1.next = node2;
node2.next = node3;
node3.next = node2;
Jz55 jz55 = new Jz55();
ListNode result = jz55.entryNodeOfLoop(root);
System.out.println(result.val);
}
}
【每日寄語】 生活總有不期而遇的溫暖和生生不息的希望,無論什麼時候都要眼看前方,滿懷希望就會所向披靡。