最近刷LeetCode,所以记录下来链表的使用
(这是尾插法)
链表是什么就不过于多写了,说白了就是一条锁链,扣子环环相扣,每个扣子里面有两个值,一个值是数据(int string boolean 等等),另一个值就是指向下一个扣子的地址值(ListNode)。
首先是创建一个链表类叫 ListNode
public static class ListNode{
public int val;
public ListNode next;
public ListNode() {}
public ListNode(int val){
this.val = val;
}
}
然后在main函数中直接new使用
public class T9 {
public static void main(String[] args) {
ListNode listNode = new ListNode();
}
public static class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
}
接下来写链表的插入数据,注意里面代码的注释,每次插入一条数据都要新建一个扣子
public static class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
//插入数据 -----------------------------------
ListNode head = null;
public void insert(int val){
//每次插入一条数据就要新建一个扣子
ListNode listNode = new ListNode(val);
if (head == null){
head = listNode;
return; //注意要返回
}
ListNode tempNode = head;
//循环到链表的末尾
while (tempNode.next !=null){
tempNode = tempNode.next;
}
tempNode.next = listNode;
}
}
最后加上一个链表的打印方法listprint,代码就完成了,下面是完整代码
public class T9 {
public static void main(String[] args) {
ListNode listNode = new ListNode();
listNode.insert(1);
listNode.insert(2);
listNode.insert(3);
listNode.insert(4);
listNode.insert(5);
listNode.listPrint();
}
public static class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
//插入数据 -----------------------------------
ListNode head = null;
public void insert(int val){
//每次插入一条数据就要新建一个扣子
ListNode listNode = new ListNode(val);
if (head == null){
head = listNode;
return; //注意要返回
}
ListNode tempNode = head;
//循环到链表的末尾
while (tempNode.next !=null){
tempNode = tempNode.next;
}
tempNode.next = listNode;
}
//打印数据 --------------------------------
public void listPrint(){
ListNode tempNode = head;
while (tempNode !=null){
System.out.print(tempNode.val);
tempNode = tempNode.next;
}
}
}
}
打印结果