链表中倒数第k个节点
发布日期:2021-06-20 02:50:12 浏览次数:6 分类:技术文章

本文共 676 字,大约阅读时间需要 2 分钟。

题目

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。

例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。

思路

设两个指针,当后面的那个指针到了尾节点的时候,前面那个指针就是结果

代码

/** * 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) {
ListNode * cur = head, * nxt = head; int tot = 0; while(nxt && tot++ < k - 1) nxt = nxt->next; if(!nxt) return NULL; while(nxt->next){
cur = cur->next; nxt = nxt->next; } return cur; }};

转载地址:https://blog.csdn.net/free1993/article/details/114875927 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:连续子数组的最大和
下一篇:神经网络中矩阵稀疏性的编码方式

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月21日 06时12分20秒