本博客介绍了单链表的实现,以及头插法尾插法的代码实现
1.定义一个结点类
class ListNode{
int value;
ListNode next;
public ListNode(int value) {
super();
this.value= value;
}
@Override
public String toString() {
return "ListNode{" +
"value=" + value +
",next=" +next +
'}';
}
}
2.定义单链表类
设置头指针用于指向第一个结点
public class LinkList {
public ListNode head;
}
3.头插法
//头插法
public void Headinsert(int value){
//创建结点
ListNode node = new ListNode(value);
if(head==null){
head=node;
return;
}
node.next=head;
head=node;
}
4.尾插法
//尾插法
public void insert(int value){
ListNode node = new ListNode(value);
if (head==null){
head=node;
return;
}
ListNode flag = head;
//用flag游标找到尾节点
while (flag.next!=null){
flag=flag.next;
}
flag.next=node;
}
5.输出结点值
定义printLink类,用于输出链表结点
//输出链表上的值
public void printLink() {
//定义flag游标进行遍历
ListNode flag = head;
while(flag!=null) {
System.out.print(flag.value+" ");
flag=flag.next;
}
System.out.println();
}
6.测试
public class Test {
public static void main(String[] args) {
LinkList linkList = new LinkList();
//尾插法
linkList.insert(5);
linkList.insert(2);
linkList.insert(7);
linkList.insert(5);
linkList.insert(3);
linkList.printLink();
//头插法
linkList.Headinsert(8);
linkList.Headinsert(7);
linkList.Headinsert(6);
linkList.Headinsert(5);
linkList.printLink();
}
}
7.输出结果
读者可自行测试