環形鍊錶也叫迴圈鍊錶(可以是雙鏈表、也可以是單鏈表),操作原理和單鏈表差不多,只是最後乙個節點不在指向空(null)而是頭(head),這裡以單鏈表舉例:
* @description 環形鍊錶
* @author lzq
* @date 2018/11/3 20:46
* @version 1.0
**/public class annular
public entry(int data)
}private entry head = new entry(); //頭節點,列表首指標
/*** 頭結點的初始化
*/public annular()
/*** 判斷鍊錶是否為空
* @return
*/public boolean isempty()else
}/**
* 頭插法
* @param val
*/public void inserthead(int val)
entry.next = this.head.next;
this.head.next = entry;
}/**
* 尾插法
* @param val
*/public void inserttail(int val)
entry.next = cur.next;
cur.next = entry;
}/**
* 刪除乙個元素
* @param data
*/public void deleteentry(int data)
entry p1 = head;
entry p2 = head.next; //前指標
/*while(p2.data!=data)
p1.next=p2.next;
}*/while(p2 != this.head) else }}
/*** 得到鍊錶的長度
* @return
*/public int getlength()
entry pwd = head;
int length = 0;
while(pwd.next != head)
return length;
}/**
* 輸出鍊錶
*/public void show()
entry cur = this.head.next;
while(cur != this.head)
system.out.println();}}
鍊錶 環形鍊錶
題目描述 給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。注意,pos 僅僅是用於標識環的情況,並不會作為引數傳遞到函式中。說明 不允...
環形鍊錶 鍊錶
題目 給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數pos來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果pos是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。示例 2 輸入...
鍊錶 環形鍊錶 II
給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回null。說明 不允許修改給定的鍊錶。高階 你是否可以不用額外空間解決此題?definition for singly linked list.class listnode public class solution start p1 ...