链表结构的定义:
链表应该由三部分部分组成:
- 结点: 结点由结点的值和指针(每个独立的结点只申明指针,并不指向具体的对象)
- 表头
- 结点指针指向的对象
链表定义一个大类:
- 表头(变量)
- 结点(类)
- 尾部添加结点(方法):结点的值添加在哪个结点的后面,当然新增加的结点只能在最后:
添加结点方法的描述:
- 新定义一个结点;
- 判断有没有头结点,如果没有头结点,就将新结点作为头结点;
- 如果有头结点,就取出头结点,并从此结点开始判断下一个结点是否为空,如果指向的下一个结点为空,就将此时结点的指针指向新结点,这个结点就添加完毕。
public class ListNode2 {
Node head = null;
public class Node{
int val;
Node next = null;
Node(int val){
this.val = val;
}
}
public void addNode(int val){
Node newNode = new Node(val);
if(head == null){
head = newNode;
return;
}
Node tmp = head;
while(tmp.next != null){
tmp = tmp.next;
}
tmp.next = newNode;
}
public static void main(String[] args) {
ListNode2 list = new ListNode2();
list.addNode(5);
list.addNode(6);
list.addNode(7);
list.addNode(8);
list.addNode(9);
Node node = list.head;
while(node != null){
System.out.println(node.val);
node = node.next;
}
}
}