力扣刷题11--返回倒数第k个节点

题目

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

注意:本题相对原题稍作改动

示例:

输入: 1->2->3->4->5  k = 2
输出: 4
说明:

给定的 k 保证是有效的。

力扣出处面试金典

解析

本人的做法是将链表每一个值存入到一个动态数组中,然后利用下标调用相关位置的元素即可。

代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    int kthToLast(ListNode* head, int k) {
        std::vector<int> vec;
        ListNode* current = head;
        while(current )
        {
            vec.push_back(current->val);
            current = current->next;
        }
        int a = vec.size();
        return vec[a-k];
    }
};
//hmtian@ 2020/7/15

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44378800/article/details/107371155