题解 | #链表中倒数最后k个结点#

链表中倒数最后k个结点

http://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

/**

  • struct ListNode {
  • int val;
  • struct ListNode *next;
  • ListNode(int x) : val(x), next(nullptr) {}
  • }; */

class Solution {

public:

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pHead ListNode类 
 * @param k int整型 
 * @return ListNode类
 */
ListNode* FindKthToTail(ListNode* pHead, int k) {
    // write code here
    if(k==0)//k==0时pHead是NULL,不存在,返回空指针
        return NULL;
    ListNode *node;
    node = pHead;
    vector<ListNode*>v;
    //创建保存链表指针的vector数组,这样能避免数太大而超界问题
    while(node!=NULL){
        v.push_back(node);
        node = node->next;
    }//将结点保存
    int n=v.size();
    if(n<k)//小于k返回NULL
        return NULL;
    else{
        return v.at(n-k);//否则返回第n-k个元素
    }
}

};

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务