链表(Linked list)是一种线性表,是一种常见的基础数据结构。
概念不在赘述。
1.创建一个链表对象:
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;
}
}
2.链表插入(头插法,尾插法,中间插法) 和 遍历
public class ListNodeServiceImpl {
//定义一个头结点
private ListNode head;
/**
*增加节点,链尾插入
*/
public ListNode addListNode(int val) {
ListNode node = new ListNode(val);//创建一个新的节点
if (head == null) {
head = node;//头结点为null,新节点赋值给头结点
return node;
}
ListNode temp = head;//头结点赋值给临时节点。
while (temp.next != null) {
temp = temp.next;
}
temp.next = node;
return node;
}
/**
* 打印所有节点
*/
public void printNodeList() {
ListNode temp = head;
while (temp != null) {
System.out.println("节点数据:" + temp.val);
temp = temp.next;
}
}
public static void main(String[] args) {
ListNodeServiceImpl listNodeService = new ListNodeServiceImpl();
listNodeService.addListNode(1);
listNodeService.addListNode(2);
listNodeService.addListNode(3);
listNodeService.addListNode(14);
listNodeService.printNodeList();
}
}
注意:我当时想为什么不直接用head,干嘛还要引入临时节点呐?

如果直接用head ,在遍历或者next时候,前面节点就丢失了。当赋值给temp时候,让temp代替head去next下一个节点,head不变。这样head节点不会丢失。(可能比较笨,记录下。当时没想明白(#^.^#))
这篇博客介绍了链表这一基础数据结构,包括如何创建链表对象,以及使用头插法、尾插法和中间插法插入节点。还展示了如何遍历链表并打印所有节点。在代码示例中,作者强调了在遍历过程中使用临时节点来保持头结点不变的重要性。
1216

被折叠的 条评论
为什么被折叠?



