Java链表——插入
2021/7/19 1:05:34
本文主要是介绍Java链表——插入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
一、head头节点
二、插入
1.头插法
2.尾插法
3.按位置插入
首先引入我自定义建立链表对象的类:LinkNode
public class ListNode { private int val; private ListNode next; public ListNode(int value) { this.val = value; } public ListNode() {} public ListNode getNext() { return this.next; } public int getVal() { return this.val; } public void setNext(ListNode next) { this.next = next; } public void setVal(int value) { this.val = value; } }
一、head头节点
注意,为了实现链表的各种操作,我们定义一个LinkNode 类的对象head。称为头节点,用于指向链表的起点。LinkNode是我自定义的类,用于实现链表对象的建立。
定义head:
ListNode head = null;
二、插入
链表的插入也即链表的构建,把点连成链。因插入位置不同分成三种情况。
1.头插法
在链表最前端插入数据:
public void HeadInsert(int val) { ListNode newNode = new ListNode(val); 首先把val建立成一个新节点 if(head == null) { 链表为空的情况 head = newNode; return; } newNode.setNext(head); 链表不为空,则把原第一个节点给到新节点的next head = newNode; 新节点成为头节点 }
2.尾插法
在链表最后插入数据
public void EndInsert(int val) { 新建节点存储数据 ListNode newNode = new ListNode(val); 判断头节点是否为空,就是链表是否为空 if(head == null) { head = newNode; return; } ListNode indexNode = head; 由于头节点head不能改变,召唤替身 while (indexNode.getNext() != null) { 从头向后遍历,直到某一节点的next indexNode = indexNode.getNext(); 是空的,意味他是最后一个节点。 } indexNode.setNext(newNode); 让原来最后一个节点的next指向新节点 }
3.按位置插入
当在链表中间插入值的时候,新节点:new
原插入位置节点:temp
temp前一个节点:pre
插入操作需要做的:
- new.next = temp
- pre.next = new
public void Insert(int val,int index) {数值,插入位置 if(index<0 || index > this.getLength()) { System.out.println("index位置不合法"); return; } if(index == 0) { HeadInsert(val); }else if(index == getLength()) { EndInsert(val); }else { ListNode newNode = new ListNode(val); ListNode tempNode = head; ListNode preNode = null; pre在temp前1位 int position = 0; 通过它找到正确插入位置 while (tempNode != null) { if(position == index) { newNode.setNext(tempNode); pre在temp前1位 temp指向的是要被插入的位置的值 preNode.setNext(newNode); return; } preNode = tempNode; tempNode = tempNode.getNext(); position++; } } }
这篇关于Java链表——插入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南