class Node{
int val;
Node next;
Node(int val){
this.val=val;
}
}
public class remove{
public Node removeElement(Node head,int val){
if(head==null){
return null;
}
Node prev=head;
Node cur=head.next;
while(cur!=null){
if(cur.val==val){
prev.next=cur.next;
}
else{
prev=cur;
}
cur=cur.next;
}
if(head.val==val){
head=head.next;
}
return head;
}
public Node removeElement2(Node head,int val){
Node cur=head;
Node result=null;
Node last=null;
while(cur!=null){
if(cur.val!=val){
if(result==null){
result=cur;
}
else{
last.next=cur;
}
last=cur;
}
cur=cur.next;
}
if(last!=null){
last.next=null;
}
return result;
}
public static void main(String[] args){
Node n1=new Node(1);
Node n2=new Node(2);
Node n3=new Node(6);
Node n4=new Node(9);
Node n5=new Node(20);
n1.next=n2;
n2.next=n3;
n3.next=n4;
n4.next=n5;
remove s=new remove();
Node result=s.removeElement(n1,2);
while(result!=null){
System.out.println(result.val+" ");
result=result.next;
}
Node hiko=s.removeElement(n1,2);
while(hiko!=null){
System.out.println(hiko.val+" ");
hiko=hiko.next;
}
}
}
【Java】删除顺序链表的某个节点
最新推荐文章于 2024-05-04 14:57:54 发布