赞
踩
解决问题方法思路如下:
方法(双指针法):头结点指针为当前指针,尾节点指针为拖后指针。开始的时候当前指针和拖后指针初始化为链表的头结点,首先我们让当前指针遍历到第m个元素,拖后指针不变;然后同步更新当前指针和拖后指针;直到当前指针为链表结尾。这样我们就能保证当前指针和拖尾指针之间的距离是m。
代码如下:
Node* FindMToLastNode(Node* pHead, int m) { // 查找到第m个元素 Node* pCurrent = pHead; for (int i = 0; i < m; ++i) { if (pCurrent) { pCurrent = pCurrent->next; } else { return NULL; } } Node* pFind = pHead; while (pCurrent) { pFind = pFind->next; pCurrent = pCurrent->next
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。