链表的倒数第k个结点
时间: 2024-12-05 10:09:11 浏览: 15
python实现获取单向链表倒数第k个结点的值示例
链表的倒数第k个节点是指在链表中,从最后一个节点开始向前数,第k个位置的那个节点。解决这个问题通常会用到双指针策略,即创建两个指针,一个快指针每次移动两步(指向下一个节点),另一个慢指针每次移动一步(指向当前节点)。当快指针到达链表尾部时,慢指针正好停在倒数第二个节点。然后,快速移动慢指针k次,就可以得到倒数第k个节点。
以下是Python的一个简单示例:
```python
def get_kth_to_last(head, k):
if not head or not head.next: # 如果链表为空或只有一个元素
return None
slow = fast = head
for _ in range(k): # 快速移动k步到链表尾部
fast = fast.next if fast else None # 处理fast指针到达尾部的情况
while fast: # 慢指针每次移动一位
slow = slow.next
fast = fast.next
return slow # 返回倒数第k个节点
```
阅读全文