数据结构删除指定位置节点的代码
时间: 2024-10-26 22:17:32 浏览: 14
在数据结构中,特别是链表和数组这两种数据结构中,删除指定位置的节点有一些常见的实现方式。
**1. 链表(单链表)删除节点:**
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def delete_node(head, position):
if not head or position < 0:
return head
# 如果position是第一个元素
if position == 0:
return head.next
# 从第二个元素开始遍历,找到第position个元素的前一个
current = head
for _ in range(position - 1):
current = current.next
# 删除当前节点的下一个节点
current.next = current.next.next
# 使用示例
head = ListNode(1, ListNode(2, ListNode(3)))
delete_node(head, 1) # 结果: [1, 3]
```
**2. 数组删除元素:**
由于数组是静态大小的,删除元素通常需要移动其他元素来填补空缺。这里是一个简单的Python示例(假设数组是从0索引开始计数的):
```python
def delete_array_element(arr, index):
if index < 0 or index >= len(arr):
return arr
# 如果删除的是最后一个元素,直接返回剩余部分
if index == len(arr) -1]
# 否则,将后面的元素向前移动一位
for i in range(index, len(arr) - 1):
arr[i] = arr[i + 1]
# 最后,返回新的数组
return arr[:index]
arr = [1, 2, 3, 4]
delete_array_element(arr, 1) # 结果: [1, 3, 4]
```
阅读全文