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

155 阅读2分钟

「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」。 在这里插入图片描述

@[toc]

☀️ 前言 ☀️

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

🙀 作者简介 🙀

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

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

💗 一、题目描述 💗

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/li… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

示例1:

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

返回链表 4->5.

💁 二、题目解析 💁

思路1\color{green}{思路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
    }
}

🌔 结语 🌔

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

期待你的关注和督促!:stuck_out_tongue:

在这里插入图片描述