public class FindCircleBeginning {
class ListNode {
public int id;
public ListNode next;
public ListNode() {
}
public ListNode(int id, ListNode next) {
this.id = id;
this.next = next;
}
}
public ListNode createList(int n) {
ListNode head = new ListNode(0,null);
ListNode p = head;
for (int i = 1; i <= n; ++i) {
ListNode tmp = new ListNode(i,null);
p.next = tmp;
p = tmp;
}
return head;
}
/**
* @param n 链表总长度
* @param m 环所在的位置,head为0,不计算入内,所以长度为n的链表位置分别为1-n
* @return
*/
public ListNode createList(int n, int m) {
if (m >= n || m <= 0) {
System.out.println("Cannot creat a linkedlist with a circle!");
return null;
}
ListNode head = new ListNode(0,null);
ListNode p = head;
for (int i = 1; i <= n; ++i) {
ListNode tmp = new ListNode(i,null);
JAVA实现 查找有环链表起始位置
最新推荐文章于 2024-04-26 15:53:11 发布
本文介绍了一个Java程序,用于创建一个带有环的链表,并找到环的起始节点。程序中定义了ListNode类来表示链表节点,提供createList方法创建链表,displayList方法展示链表,findCircle方法使用快慢指针查找链表中的环起点。通过示例展示了如何创建一个7个节点、环位于第5个节点的链表,并找出环的起始节点。
摘要由CSDN通过智能技术生成