「java链表删除」java链表删除某一个节点

博主:adminadmin 2023-01-22 01:48:04 290

今天给各位分享java链表删除的知识,其中也会对java链表删除某一个节点进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java单链表根据内容删除节点

代码:

// 删除下标为index的节点

public void remove(int index) {

if (index = modCount) {

// 抛异常

System.out.println("indexOutOfBoundsException!");// 最好自定义异常抛出,这里演示

return;

}

Node node = head;

// 如果节点为第一个节点

if (index == 0) {

head = head.next; // 将头节点指向第二个节点

modCount--;

return;

}

// 如果节点为最后一个节点,找到最后一个节点的前一个节点,不用管

if (index == modCount - 1) {

System.out.println("ddd");

// 找到最后一个节点的前一个节点

int j = 0;

while (node != null  j  index - 1) {

// 最后一个节点的前一个节点

node = node.next;

j++;

}

last = node; // 最后一个节点设置为前一个节点

modCount--;

return;

}

// 如果节点为中间节点

int j = 0;

while (node != null  j  index - 1) {

// 查找被删除的节点的前一个节点

node = node.next;

j++;

}

node.next = node.next.next; // 被删除节点的下一个节点设置为被删除节点的下下个节点

modCount--;

}

java删除链表节点 ,请教大神,

因为你访问的对象实际是对象的引用,当prev=node执行,即prev指向node当前指向的对象,第一次循环时就是指向了“圆圆”;接下来执行node=node.next,则node指向了“方方”,此时并不会对prev造成影响,prev将继续指向“圆圆”。、

你应该是把两个概念混淆了,当被改变的是对象本身的内容(而不是引用指向的对象)时,才会出现你说的那种情况。比如你在prev=node执行后把对象的字段从“圆圆”改成“XX”

java链表可以循环删除吗

//LinkedList是我见过方法最多最多的集合了!

//删除方法,分老版本(空值抛异常),和新版本(空值给出null)

//遍历索引删除,迭代器删除!

//头删除,尾删除,反正所有集合中,它是我看过最多最多的的方法了!

//看几种全都是循环删除的吧!

import java.util.*;

public class LinkedListTest {

public static void main(String[] args) {

LinkedListString lk=new LinkedList();

add(lk);//添加!

see(lk);//查看!

//删除方法1:

while(lk.size()0) {

System.out.println("长度="+lk.size()+"\t删除:"+lk.poll());

}

see(lk);//查看!

add(lk);//添加!

see(lk);//查看!

//删除方法2:

while(lk.size()0) {

System.out.println("长度="+lk.size()+"\t删除:"+lk.pollFirst());

}

see(lk);//查看!

add(lk);//添加!

see(lk);//查看!

//删除方法3:

while(lk.size()0) {

System.out.println("长度="+lk.size()+"\t删除:"+lk.pollLast());

}

see(lk);//查看!

//删除方法4:

add(lk);//添加!

see(lk);//查看!

for(int i=0;ilk.size();) {

System.out.println("删除:"+lk.remove(i));

}

see(lk);//查看!

//删除方法5:

add(lk);//添加!

see(lk);//查看!

for(ListIteratorString it=lk.listIterator();it.hasNext();) {

System.out.println(lk.remove(it.nextIndex()));

}

see(lk);//查看!

}//添加!

private static void add(ListString lk) {

for(int i=0;i10;i++) {

lk.add("第"+(i+1)+"个元素:"+((char)(97+i)));

}

}//查看!

private static void see(ListString lk) {

System.out.println("链表长度="+lk.size());

System.out.println(lk);

System.out.println("--------------------------");

}

}

关于java链表删除和java链表删除某一个节点的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。