来自《剑指offer》 链表中倒数第k个节点

来源:互联网 发布:mysql定时备份 编辑:程序博客网 时间:2024/05/17 00:19

定义两个指针,第一个指针从链表头节点开始遍历向前走k-1个节点;

第一个指针从第k处开始走,同时第二个指针从头节点处开始走,第一个指针到达链表尾指针时,第二个指针正好在倒数第k个节点处。

#include<iostream>using namespace std;struct ListNode{int m_nValue;ListNode *m_pNext;};//链表中倒数第k个节点ListNode* FindKthToTail(ListNode* pListHead,unsigned int k ){if(pListHead==NULL||k==0)return NULL;ListNode *pAhead=pListHead;ListNode *pBehind=NULL;for(unsigned int i=0;i<k-1;i++){if(pAhead->m_pNext!=NULL)pAhead=pAhead->m_pNext;else return NULL;}pBehind=pListHead;while(pAhead->m_pNext!=NULL){pAhead=pAhead->m_pNext;pBehind=pBehind->m_pNext;}return pBehind;}


0 0
原创粉丝点击