1.Java是如何构造出链表的
链表的特点是,每个节点,包含一个值和唯一的指向下一个节点的指针。在JVM中有堆区和栈区,堆区负责记录对象,而栈区负责记录引用,类似于一个指向堆区里对象的地址。于是我们可以这样来建立一个节点的值和指向下一个节点的指针
public class ListNode {
private int val;
private ListNode nest;
public int getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
public ListNode getNest() {
return nest;
}
public void setNest(ListNode nest) {
this.nest = nest;
}
}
在链表的增删改查操作中,改和查只需从头节点遍历下去即可,下面详细说一下增和删。
2.如果需要向链表中插入一个节点,可分为头部,尾部,中间三种情况。
头部:在插入之后,切记将头指针向前移动一位。
尾部:将最后一个节点原先指为null的指针指向新插入的节点
中间:首先遍历找到插入位置的前一个节点,令为cur,插入节点为nodeInsert,则可以这么操作
cur.next = nodeInsert.next;
cur.next = nodeInsert;
3.如果要进行删除操作,同样要分成头部,尾部,中间三种情况
头部:直接将头节点向后移动一位
head = head.next;
尾部:遍历找到最后一个节点的前驱节点,将其指针置为null
for(int i = 1;i < position - 1;i++){//position为要删除的节点位置
cur = cur.next;
}
cur.next = null;
中间:遍历找到position的前一个节点,完成如下操作
cur.next = cur.next.next;
2023.11.27