既然要对链表进行操作,那么就要先明确 “链表” 是个什么东西,
有很多情况就是我们听过链表这个词,但却又说不出个所以然来。
链表:简单的说,链表是由一个个的节点串到一起组合而成的,而每一个节点的组成又包括两部分(数据 和 指针):
数据域:顾名思义用来存放数据的
指针域:是用来指向下一节点的
要对链表进行插入,就包括以下三种情况:
- 在头部插入节点
- 在尾部插入节点
- 在中间插入节点
要说的是在中间插入操作:
Java 代码实现如下:
//将节点看做一个对象,数据和指针就对应两个属性
public class Node {
private Object data; //数据域--保存数据
private String next; //指针域--指向下一节点
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getNext() {
return next;
}
public void setNext(String next) {
this.next = next;
}
}
操作步骤:
public class NodeController {
@Autowired
NodeService nodeService;
public void index(){
//1.查找指定节点(也可通过其他方式获取节点对象)
Node node = new Node();
//2.获取node节点的指针,
String next = nodeService.Next(node);
//3. ①创建新节点
Node node1 = new Node();
//②因为是在 node 节点后插入 node1 节点,所以需要将node1节点的指向设置为node节点的指向
if(StringUtils.isEmpty(next)){
node1.setNext(next);
}
//③现在node1节点已经插入到node 节点之后了,所以还需要将node节点的指向设置为node1
String next1 = nodeService.Next(node1);
node.setNext(next1);
}
}
service:(因为考虑到之后还会有一些方法的封装):
public class NodeService {
public String Next(Node node){
return node.getNext();
}
}
永远也不要停下学习的脚步,以上均属个人理解,有错误的地方欢迎大佬留言指正。