链表的头插法和尾插法
作者:互联网
复习一下链表的插入操作
头插法
-
创建一个临时节点存放数据
-
将头部指针后面的数据都链接到这个临时节点后面
-
将这个临时节点再链接到头部指针后面
尾插法
-
创建一个临时节点存放数据
-
将这个临时节点链接到用于的移动的插入元素位置的指针上
-
将这个指针向后移动到链表末尾,用于接下来的插入,并且将指针域赋值为空
定义链表的代码
//链表定义
public 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 = list; //链表的头指针 用于插入节点
for (int i : arr) {
ListNode s = new ListNode(i); //用于存储数据的临时节点
s.next = head.next; //将链表的头结点后面的数据 给这个临时节点
head.next =s; //然后将这个临时节点重新链接到头结点后面
}
printlist(list.next);
尾插法
//尾插法
ListNode p = list; //链表的指针 可随插入节点位置移动
for (int i : arr) {
ListNode s = new ListNode(i); //用于存储数据的临时节点
p.next = s; //将临时节点链接到链表头部的指针
p = p.next; //将指针向后移动
}
printlist(list.next);
遍历
public static void printlist(ListNode list) {
while (list != null) {
System.out.println(list.val + " ");
list = list.next;
}
}
标签:插法,ListNode,list,next,链表,节点 来源: https://www.cnblogs.com/Cloong/p/16647740.html