當前位置:首頁 » 編程語言 » java鏈表刪除

java鏈表刪除

發布時間: 2022-08-25 06:25:31

『壹』 java鏈表中刪除一個節點的操作跟指向下一個節點的操作一樣,那最後鏈表不就空了

用已經封裝好的ArrayList可以很方便的完成要求:

List<Integer> list = ...// 操作的鏈表
for(int i=0; i<list.size; ){
int val = list.get(i);

if(val < max){
list.remove(i);
}else{
i++;
}

}

java鏈表刪除一個節點的原理是這樣的,prev->curr->next,prev是當前節點curr的前一個節點,next是curr的下一個節點,刪除curr就是讓prev直接指向next即可,結果為prev->next,這樣就行了,curr由於沒有被引用,會被垃圾回收器回收。至於你說的鏈表空了,是從何而來?

『貳』 在java中用數組模擬鏈表,實現添加和刪除數據功能

已經寫好了,私信我,發給你

『叄』 JAVA鏈表的刪除

存儲過程刪除,或者是觸發器!

『肆』 java刪除鏈表節點 ,請教大神,

因為你訪問的對象實際是對象的引用,當prev=node執行,即prev指向node當前指向的對象,第一次循環時就是指向了「圓圓」;接下來執行node=node.next,則node指向了「方方」,此時並不會對prev造成影響,prev將繼續指向「圓圓」。、
你應該是把兩個概念混淆了,當被改變的是對象本身的內容(而不是引用指向的對象)時,才會出現你說的那種情況。比如你在prev=node執行後把對象的欄位從「圓圓」改成「XX」

『伍』 刪除單向鏈表中給定位置的結點。要求分三種情況討論,java語言

情況一:當刪除的是第一個元素,需要把鏈頭重新設置為此元素的
下一個元素
屬性;
情況二:當刪除的元素在鏈中間,需要把其前一個元素的
下一位
屬性設置為此元素的下一位屬性;
情況三:當刪除的元素為鏈尾,就把前一個元素的下一位屬性設置為NULL。

『陸』 java鏈表怎麼刪除第一個節點

單向鏈表還是雙向的?
是不是就刪除第一個?
那麼可以這樣
public
void
delete()
{
head
=
head.next();
}
如果想鏈尾的把鏈表做成雙端鏈表就簡單很多,如果是普通的就這樣:
public
void
delete()
{
JNode
node
=
head;
JNode
node2
=
null;
while(node.next!=null)
{
node2
=
node;
node
=
node.next;
}
if(node==head){
head
=
null;
}
else
node2.next
=
null;
}

『柒』 java鏈表可以循環刪除嗎

//LinkedList是我見過方法最多最多的集合了!
//刪除方法,分老版本(空值拋異常),和新版本(空值給出null)
//遍歷索引刪除,迭代器刪除!
//頭刪除,尾刪除,反正所有集合中,它是我看過最多最多的的方法了!
//看幾種全都是循環刪除的吧!
importjava.util.*;
publicclassLinkedListTest{
publicstaticvoidmain(String[]args){
LinkedList<String>lk=newLinkedList<>();
add(lk);//添加!
see(lk);//查看!

//刪除方法1:
while(lk.size()>0){
System.out.println("長度="+lk.size()+" 刪除:"+lk.poll());
}
see(lk);//查看!

add(lk);//添加!
see(lk);//查看!
//刪除方法2:
while(lk.size()>0){
System.out.println("長度="+lk.size()+" 刪除:"+lk.pollFirst());
}
see(lk);//查看!

add(lk);//添加!
see(lk);//查看!

//刪除方法3:
while(lk.size()>0){
System.out.println("長度="+lk.size()+" 刪除:"+lk.pollLast());
}
see(lk);//查看!

//刪除方法4:
add(lk);//添加!
see(lk);//查看!
for(inti=0;i<lk.size();){
System.out.println("刪除:"+lk.remove(i));
}
see(lk);//查看!


//刪除方法5:
add(lk);//添加!
see(lk);//查看!
for(ListIterator<String>it=lk.listIterator();it.hasNext();){
System.out.println(lk.remove(it.nextIndex()));
}
see(lk);//查看!

}//添加!
privatestaticvoidadd(List<String>lk){
for(inti=0;i<10;i++){
lk.add("第"+(i+1)+"個元素:"+((char)(97+i)));
}
}//查看!
privatestaticvoidsee(List<String>lk){
System.out.println("鏈表長度="+lk.size());
System.out.println(lk);
System.out.println("--------------------------");
}
}

『捌』 java雙鏈表怎麼實現插入刪除要簡單的啊,著急,謝謝各位了。

既然你都說了LinkedList,那他就肯定可以ListIterator()創建迭代器的,使用迭代器的實例插入,刪除!
LinkedList<T>
list
=
new
LinketList<T>();
ListIterator
iter
=list.ListIterator();
iter.next();
iter.add(T
t);
iter,remove();
這里把next()理解成你輸入文字時的游標就好了,比如上邊代碼的意思就是在第一個和第二個元素之間插入一個元素

『玖』 java單鏈表根據內容刪除節點

代碼:

//刪除下標為index的節點
publicvoidremove(intindex){
if(index>=modCount){
//拋異常
System.out.println("indexOutOfBoundsException!");//最好自定義異常拋出,這里演示
return;
}
Nodenode=head;
//如果節點為第一個節點
if(index==0){
head=head.next;//將頭節點指向第二個節點
modCount--;
return;
}

//如果節點為最後一個節點,找到最後一個節點的前一個節點,不用管
if(index==modCount-1){
System.out.println("ddd");
//找到最後一個節點的前一個節點
intj=0;
while(node!=null&&j<index-1){
//最後一個節點的前一個節點
node=node.next;
j++;
}
last=node;//最後一個節點設置為前一個節點
modCount--;
return;
}

//如果節點為中間節點
intj=0;
while(node!=null&&j<index-1){
//查找被刪除的節點的前一個節點
node=node.next;
j++;
}
node.next=node.next.next;//被刪除節點的下一個節點設置為被刪除節點的下下個節點
modCount--;
}

『拾』 對鏈表進行添加,刪除,插入等方法,JAVA

雙鏈表刪除插入;
class LinkedListElement<T> {

T value;
LinkedListElement<T> next;
LinkedListElement<T> parent;

public LinkedListElement(T value, LinkedListElement<T> parent, LinkedListElement<T> next) {
this.value = value;
this.parent = parent;
this.next = next;
}

public void insert(LinkedListElement<T> element) {
if(element!=null){
if(parent==null){
element.next=this;
this.parent=element;
}else{
parent.next=element;
element.parent=parent;
element.next=this;
this.parent=element;
}
}
}
public LinkedListElement<T> remove(){
if(this.parent==null){
return next;
}else{
next.parent=parent;
parent.next=next;
return next;
}
}
}

熱點內容
扣扣密碼是多少 發布:2025-01-17 23:02:57 瀏覽:646
易柚和安卓手機哪個好 發布:2025-01-17 23:02:14 瀏覽:583
linux切換root用戶 發布:2025-01-17 22:50:27 瀏覽:534
速賣通演算法 發布:2025-01-17 22:42:12 瀏覽:444
編譯中標題翻譯的特點 發布:2025-01-17 22:42:07 瀏覽:439
oppok7x激活密碼是多少 發布:2025-01-17 22:41:02 瀏覽:222
按鍵精靈腳本自動交易分解 發布:2025-01-17 22:30:33 瀏覽:14
如何恢復安卓60 發布:2025-01-17 22:27:07 瀏覽:439
正版秒贊源碼 發布:2025-01-17 22:25:09 瀏覽:989
安卓怎麼玩pokemon 發布:2025-01-17 22:23:40 瀏覽:757