代码如下:
class Node{
Node next=null;
int val;
//Node head;
Node(int val){
this.val=val;
}
public String toString() {
return String.format("Node(%d)", val);
}
}
public class LinkedList {
public static void main(String[] args) {
Node head=null;
head=popBack(head);
head=popFront(head);
//print(head);
head=pushFront(head,1);
head=pushFront(head,2);
head=pushFront(head,3);//3 2 1
print(head);
head=pushBack(head,4);
head=pushBack(head,5);
head=pushBack(head,6);//3 2 1 4 5 6
print(head);
head=popFront(head);
head=popFront(head);//1 4 5 6
print(head);
head=popBack(head);
head= popBack(head);//1 4
print(head);
head=popBack(head);
head= popBack(head);//null
print(head);
}
private static void print(Node head){
Node cur=head;
for(cur=head;cur!=null;cur=cur.next){
System.out.print(cur+"-->");
}
System.out.println("null");
}
/*
* 尾插
*/
public static Node pushBack(Node head,int val){
Node node=new Node(val);
if(head==null){
return node;
}
else{
Node last=head;
while(last.next!=null){
last=last.next;
}
last.next=node;
return head;
}
}
//头插
public static Node pushFront(Node head,int val){
Node node=new Node(val);
node.next=head;
return node;
}
//头删
public static Node popFront(Node head){
if(head==null){
System.err.println("空链表无法删除~~~");
return null;
}
else{
head=head.next;
return head;
}
}
//尾删
public static Node popBack(Node head){
// Node last=new Node(val);
if(head==null){
System.err.println("空链表无法删除……");
return null;
}
else if(head.next==null){
return null;
}
else{
Node lastSecond=head;
while(lastSecond.next.next!=null){
lastSecond=lastSecond.next;
}
lastSecond.next=null;
return head;
}
}
}
运行结果: