题目描述
方法一
思路
首先统计链表的长度(length),然后顺便遍历链表,直至 length - k 时停止,此时指向的就是链表倒数第 k 个节点。
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* getKthFromEnd(ListNode* head, int k) {
int length = 0, i = 0;
ListNode* p = head;
while (p) {
++length;
p = p->next;
}
p = head;
while (i < length - k) {
p = p->next;
++i;
}
return p;
}
};