本题要求实现一个函数,删除单链表的第i个结点。
时间: 2023-04-29 07:01:23 浏览: 125
用C++编程实现链表删除某结点
5星 · 资源好评率100%
好的,我来回答这个问题。
这个问题要求我们实现一个函数,用来删除单链表中的第i个节点。
实现这个函数的方法比较简单,我们可以先遍历单链表,找到第i个节点的前一个节点,然后将它的next指针指向第i个节点的下一个节点,最后释放第i个节点的内存空间即可。
具体实现方法可以参考下面的代码:
```python
class ListNode:
def __init__(self, val=, next=None):
self.val = val
self.next = next
def deleteNode(head: ListNode, i: int) -> ListNode:
if not head:
return None
if i == 1:
return head.next
cur = head
for j in range(i-2):
if not cur.next:
return head
cur = cur.next
if not cur.next:
return head
cur.next = cur.next.next
return head
```
这个函数的参数是一个单链表的头节点和一个整数i,返回值是删除后的单链表的头节点。
我们先判断头节点是否为空,如果为空则直接返回None。如果i等于1,说明要删除的是头节点,直接返回头节点的下一个节点即可。
接下来我们遍历单链表,找到第i个节点的前一个节点,如果找不到则直接返回头节点。然后将前一个节点的next指针指向第i个节点的下一个节点,最后返回头节点即可。
希望这个回答能够帮到你。
阅读全文