Hadoop Appuim环境搭建 resultMap RabbitMQ search jdbc random graph msbuild axios Amaze UI Backbonejs Modernizr Uploadify 前端vue框架 vue实现原理 后台管理ui less使用 mysql数据库名称 matlab向量的模 js获取body的高度 bootstrap文本框 windows查看进程命令 mysql函数返回结果集 pyhton中异常和模块 python多线程 python语言编程入门 怎么配置java环境 java时间函数 java面向对象 java获得当前日期 java中获取当前时间 linux内核编程 pushstate 手机主题之家 滑动门代码 视频加字幕软件 亚索刀光 碧桂园园宝 pr动态字幕
当前位置: 首页 > 学习教程  > 编程语言

力扣 面试题 02.02. 返回倒数第 k 个节点

2020/11/24 9:41:27 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

面试题 02.02. 返回倒数第 k 个节点 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 输入: 1->2->3->4->5 和 k 2 输出: 4 说明: 给定…

面试题 02.02. 返回倒数第 k 个节点

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

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

示例:

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

说明:

给定的 k 保证是有效的。

思路:先遍历一遍计算链表长度,再进行算出倒序k位是正序的第几位,然后返回正序第n位的值

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


int kthToLast(struct ListNode* head, int k){
    int size=0;
    struct ListNode* current;
    for(current=head;current!=NULL;current=current->next) size++;
    current=head;
    for(int i=0;i<size-k;i++)   current=current->next;
    return current->val;
}

别人的其他思路:

双指针:使用两个指针,第一个指针先移动k步,然后第二个指针再从头开始,这个时候这两个指针同时移动,当第一个指针到链表的末尾的时候,返回第二个指针即可。

 

 


本文链接: http://www.dtmao.cc/news_show_400094.shtml

附件下载

上一篇:phtyon 使用dict

下一篇:nginx-7-主备高可用

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?