• [剑指offer] 链表中倒数第k个结点


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

    若p指针为头指针,q指针指向第k个结点,两个一起向后移动,当q指向最后一个结点时,p指向倒数第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 || !k) return NULL;
            int n = k - 1;
            ListNode* node = pListHead;
            while (n--) {
                if (!(node->next)) return NULL;    // 这里要注意
                node  = node->next;
            }
            ListNode* re = pListHead;
            while (node->next) {
                node = node->next;
                re = re->next;
            }
            return re;
        }
    };
  • 相关阅读:
    第一周作业
    第八周作业
    第七周作业
    第五周作业
    第四周作业
    第三周作业
    第二周作业(markdown版本)
    第一周作业
    第六次作业
    第五周作业
  • 原文地址:https://www.cnblogs.com/zmj97/p/7904853.html
Copyright © 2020-2023  润新知