14. 链表中倒数第k个节点

    xiaoxiao2024-11-06  74

    输入一个链表,输出该链表中倒数第k个结点。

    思路:两个指针,先让第一个指针走k步,然后两个指针一起走,当前一个指针走到结尾时,后一个指针就是倒数第k个节点。

    /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if (pListHead == NULL) return NULL; ListNode* p = pListHead; while(k && p) { p = p->next; --k; } if (k != 0) return NULL; ListNode* res = pListHead; while(p) { res = res->next; p = p->next; } return res; } };

     

    最新回复(0)