单链表定位前驱结点的代码
时间: 2024-11-12 07:44:43 浏览: 11
在单链表中,如果我们想要找到某个节点的前驱节点,即它的直接前一个节点,通常我们需要遍历整个链表或者维护一些额外的信息。这里有一个简单的示例,假设我们有一个指向链表头节点的指针`head`:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def get_predecessor(head, target_node):
if not head or head == target_node: # 如果链表为空,或者目标节点就是头节点
return None # 没有前驱,返回None
current = head # 初始化当前节点为头节点
while current.next != target_node: # 遍历链表直到找到目标节点的前一个节点
current = current.next # 移动到下一个节点
return current # 返回当前节点,它是指向目标节点的前驱
# 使用示例:
node_to_find_predecessor = ... # 要查找前驱的节点
predecessor = get_predecessor(head, node_to_find_predecessor)
```
在这个例子中,如果找到了目标节点的前驱,函数会返回该节点;如果没有找到(比如目标节点是链表的第一个元素),则返回`None`。
阅读全文