原文:如何找出单链表中的倒数第k个元素

为了找出倒数第k个元素,最容易想到的办法是首先遍历一遍单链表,求出整个单链表的长度n,然后将倒数第k个,转换为正数第n k个,接下来遍历一次就可以得到结果。但是该方法存在一个问题,即需要对链表进行两次遍历,第一次遍历用于求解单链表的长度,第二次遍历用于查找正数第n k个元素。 显然,这种方法还可以进行优化。于是想到了第二种方法,如果从头至尾的方向从链表中的某个元素开始,遍历k个元素后刚好达到链表 ...

2018-06-06 07:36 0 3081 推荐指数:

查看详情

python经典算法面试题1.5:如何找出链表倒数第K元素

本题目摘自《Python程序员面试算法宝典》,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类。 【微软笔试题】 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐⭐ 题目描述: 找出链表倒数第k元素,例如给定单链表:1 -> ...

Tue Oct 29 17:28:00 CST 2019 0 307
链表倒数第K个节点

  求链表倒数第K个节点:主要思路设置两个指针,刚开始都指向链表的第一个节点,第一个指针先走k-1步,然后两个一块走,直到第一个指针的下一位为nullptr,则第二个指针所指的位置就是倒数第k个节点。   在编程书上看见这个方法,自己画了个链表试了试果然是这样,但是这是个什么原理 ...

Fri Apr 15 03:25:00 CST 2016 0 5162
LeetCode–链表倒数第k个节点

LeetCode–链表倒数第k个节点 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 剑指 Offer 22. 链表倒数第k个节点 题目 输入一个链表,输出该链表倒数第k个节点。为了符合 ...

Sat Sep 12 03:21:00 CST 2020 0 671
链表倒数第k个节点

题目 输入一个链表,输出该链表倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表倒数第3个结点是值为4的结点。 解题思路 1.不可行的常规解法   为了得到倒数第k ...

Wed Dec 26 06:55:00 CST 2018 0 1011
【剑指Offer】14、链表倒数第k个结点

  题目描述:   输入一个链表,输出该链表倒数第k个结点。为了符合习惯,从1开始计数,即链表的尾结点是倒数第1个节点。例如,一个链表有6个结点,从头结点开始,它们的值依次是1,2,3,4,5,6。则这个链表倒数第三个结点是值为4的结点。   解题思路:   对于单链表来说,没有从后向 ...

Thu Apr 25 05:13:00 CST 2019 0 532
面试题15:链表倒数第K个结点

看到这道题目,最直观的想法,就是先算出链表的长度n,然后倒数第k个结点就是顺序的第(n-k+1)个数,不过这样需要2次遍历链表,如果要求只能遍历链表一次,那么上述算法就不符合要求了。 那我们就使用第二种算法,设定两个指针p1和p2,两个指针刚开始都指向链表的第一个结点,然后让p1 ...

Fri Apr 27 21:03:00 CST 2012 1 4468
链表查找倒数第k个节点

题目:输入一个单向链表,输出该链表倒数第k个结点。链表倒数第0个结点为链表的尾指针。 分析:为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是输入的是单向链表,只有从前往后的指针而没有从后往前的指针。因此我们需要打开我们的思路。既然不能从尾结点开始遍历这个链表 ...

Fri Mar 08 05:00:00 CST 2013 0 8707
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM