gpt4 book ai didi

java - 如何从链表中删除节点?

转载 作者:行者123 更新时间:2023-12-02 08:55:15 26 4
gpt4 key购买 nike

此代码是一个表,具有 Inert name、delete、show 和 quit 选项。

这段代码运行良好,但我唯一的问题是如何删除节点中选定的名称

class Node{

Node in;
String name;

public Node(){

in = null;

}

public Node(String n){

in = null;
name = n;

}

public void setIn(Node n){

in = n;

}

public Node getIn(){

return in;

}

public void setName(String n){

name = n;

}

public String getName(){

return name;

}




public class Main{

public static void main(String args[]){
Scanner scan = new Scanner(System.in);
LinkedList bi = new LinkedList();
while(true){

System.out.println("Choose!\n[a] Insert Name\n[b] Delete\n[c] Show\n[d] Exit");
char c = scan.next().charAt(0);
System.out.println();

if(c == 'a'){

System.out.print("Enter Name: ");
bi.insert(scan.next());
System.out.println();

}
else if(c == 'b'){

System.out.print("Enter Name to delete: ");
bi.delete(scan.next());
System.out.println();
}
else if(c == 'c'){

bi.show();
System.out.println();

}
else if(c == 'd'){

System.exit(0);

}

}

}

}


class LinkedList{

private Node root;

public LinkedList(){

root = null;
}

public void insert(String n){

root = insert(root, n);

}

private Node insert(Node n, String r){

if(n == null){

n = new Node(r);

}
else{

n.in = insert(n.in, r);

}

return n;

}

public void delete(String n){

root = delete(root, n);

}

private Node delete(Node n, String r){




}

public void show(){

show(root);

}

private Node show(Node n){
if(n == null){

System.out.println("Empy list!");

}
else{

while(n!=null){

System.out.println(n.getName());
n = n.getIn();

}

}

return n;
}

}

*我不知道如何删除节点。我应该在删除方法中添加什么?

public void delete(String n){

root = delete(root, n);

}

private Node delete(Node n, String r){




}

最佳答案

我们可以为您编写此代码,但这没有捕获要点。

相反,我建议您在纸上绘制链表数据结构,使用框表示列表节点和节点的字段,使用箭头表示指针/引用。然后为算法的局部变量绘制更多框......并“手动执行”它。这将帮助您可视化代码应该做什么。

一旦你做了几次这样的事情,你就能在脑海中想象......

<小时/>

can you please give me a sample ?

抱歉,不行。您可以通过自己解决来了解更多信息。见上文。

关于java - 如何从链表中删除节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com