LeetCode刷题offer22-简单-链表中的倒数第k个节点

简介: LeetCode刷题offer22-简单-链表中的倒数第k个节点


1.png

文章目录


☀️ 前言 ☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!


🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

📢 :❤布小禅❤

📢 作者专栏:

❤Python❤

❤Java❤

❤力扣题❤

这是我刷第 48/100 道力扣简单题


💗 一、题目描述 💗

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

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

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

示例1:

给定一个链表: 1->2->3->4->5, 和 k = 2.
返回链表 4->5.


💁 二、题目解析 💁

                                                      思                               路                               1                               :                                                 \color{green}{思路1:}                  1

复制头结点,使用hed接收

遍历一次

判断k大小,当k减到1的时候,就开始hed的更新

让k自减

最后返回hed


🏃 三、代码 🏃

☁️ 1️⃣. python ☁️

class Solution:
    def getKthFromEnd(self, head: ListNode, k: int) -> ListNode:
        hed = head                      # 复制头结点,使用hed接收
        while head.next!=None:          # 遍历一次
            if k-1<1: hed = hed.next    # 判断k大小,当k减到1的时候,就开始hed的更新
            head = head.next            # 更新head
            k-=1                        # 让k自减
        return hed                      # 最后返回hed


❄️ 2️⃣. C# ❄️

public class Solution 
{
    public ListNode GetKthFromEnd(ListNode head, int k) 
    {
        ListNode hed = head;            // 复制头结点,使用hed接收
        while (head.next!=null)         // 遍历一次
        {
            if (k-1<1)                  // 判断k大小
            {
                hed = hed.next;         // 当k减到1的时候,就开始hed的更新
            }
            head = head.next;           // 更新head
            k--;                        // 让k自减
        }
        return hed;                     // 最后返回hed
    }
}


🌔 结语 🌔

坚持最重要,每日一题必不可少!😸

期待你的关注和督促!😛

1.png

目录
相关文章
|
26天前
|
存储 算法
LeetCode第86题分隔链表
文章介绍了LeetCode第86题"分隔链表"的解法,通过创建两个新链表分别存储小于和大于等于给定值x的节点,然后合并这两个链表来解决问题,提供了一种简单易懂且操作原链表的解决方案。
LeetCode第86题分隔链表
|
26天前
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
|
14天前
|
C++ 索引
leetcode 707.设计链表
本文提供了解决LeetCode 707题"设计链表"的C++实现,包括单链表的节点定义和类方法实现,如添加节点、获取节点值、删除节点等。
|
26天前
|
算法
LeetCode第92题反转链表 II
文章分享了LeetCode第92题"反转链表 II"的解法,通过使用四个指针来记录和更新反转链表段的头部、尾部以及前一个和后一个节点,提供了一种清晰且易于理解的解决方案。
LeetCode第92题反转链表 II
|
4月前
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
3月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
3月前
|
存储 SQL 算法
LeetCode 题目 86:分隔链表
LeetCode 题目 86:分隔链表
|
3月前
|
存储 算法 Java
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
25 2
|
4月前
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点.
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点
42 1
|
3月前
|
算法
【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表
【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表