java实行删除键_java-删除链表中指定键的节点

我已经编写了代码,从给定密钥的链表中删除了一个节点.但是,当我尝试删除此处的第一个节点然后遍历列表时,它仍显示先前存在的第一个节点.有人可以告诉我我在做什么错吗?我的整个代码都以类名开头

public class LinkedList {

//removing Node nested class

public void buildList1() {

head=new Node(1);

head.next=new Node(3);

head.next.next=new Node(5);

head.next.next.next=new Node(7);

}

public boolean removeNode(Node head,int x) {

//1 3 5 7---to delete 5

Node q=head;//q

// Node p=head.next;//p

Node prev=null;

if(q!=null && q.data==x) {

head=q.next;

//q=null;

System.out.println("next to head" + head.data);

return true;

}

while(q!=null && q.data!=x) {

prev=q;

q=q.next;

}

if(q==null)

return false;

prev.next=q.next;

return true;

}

public void printList()

{

Node tnode = head;

while (tnode != null)

{

System.out.print(tnode.data+" ");

tnode = tnode.next;

}

}

public static void main(String args[]) {

LinkedList list=new LinkedList();

list.buildList1();

list.printList();

System.out.println(list.removeNode(list.head,1));

list.printList();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值