Java数据结构单链表 按位插入
时间: 2023-09-04 12:10:55 浏览: 55
单链表按位插入的思路是先找到要插入的位置,然后将新节点插入到该位置。
具体实现步骤如下:
1. 判断要插入的位置是否合法,如果不合法则直接返回;
2. 找到要插入位置的前一个节点,可以使用循环遍历或者递归查找的方法;
3. 创建新节点,并将新节点的next指针指向前一个节点的next节点;
4. 将前一个节点的next指针指向新节点,完成插入操作。
Java代码实现:
```
public void insertByIndex(int index, Object data) {
if (index < 1 || index > size + 1) {
System.out.println("插入位置不合法!");
return;
}
Node newNode = new Node(data);
if (index == 1) { // 插入到链表头部
newNode.next = head;
head = newNode;
} else { // 插入到链表中间或尾部
Node preNode = getNodeByIndex(index - 1); // 找到要插入位置的前一个节点
newNode.next = preNode.next;
preNode.next = newNode;
}
size++;
}
// 根据下标查找节点
private Node getNodeByIndex(int index) {
if (index < 1 || index > size) {
System.out.println("查找位置不合法!");
return null;
}
Node node = head;
for (int i = 1; i < index; i++) {
node = node.next;
}
return node;
}
```
注意事项:
1. 插入位置不合法时需要进行判断并给出提示;
2. 插入到链表头部和中间的情况需要分别处理;
3. 插入操作完成后,需要将链表长度size加1。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)