面试题 22. 链表中倒数第 K 个节点…
剑指 Offer 22. 链表中倒数第k个节点 Offer 22 常规解法 常规解法其实很容易可以想到,只需要先求出链表的长度,然后再次遍历取指定长度的链接即可. package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/1/26 20:10 */ /** * 题目分析: * 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. * 例如,一个链表有6…
剑指 Offer 22. 链表中倒数第k个节点 知识点:链表:双指针 题目描述 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1.2.3.4.5.6.这个链表的倒数第 3 个节点是值为 4 的节点. . 示例 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 解法一:解析 这题和leetcode 61 旋转链表…
题目 剑指 Offer 22. 链表中倒数第k个节点 思路1(栈) 既然要倒数第k个节点,那我们直接把所有节点放到栈(先进后出)里面,然后pop弹出k个元素就可以了 代码 class Solution { public ListNode getKthFromEnd(ListNode head, int k) { LinkedList<ListNode> stack = new LinkedList<>(); // 把整个链表入栈 while (head != null) { sta…
剑指 Offer 22. 链表中倒数第k个节点 题意 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. ​ 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1.2.3.4.5.6,则这个链表的倒数第 3 个节点是值为 4 的节点. ​ 链表节点的定义如下: struct ListNode { int val; ListNode* next; ListNode(int x) : val(x), next(NULL) {…
题目链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6.这个链表的倒数第3个节点是值为4的节点. 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表…
要求:输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6.这个链表的倒数第3个节点是值为4的节点. 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 思路:定义快慢双指针,先让快指针先走k步,然后双指针一起移动,完成只需要遍历一遍 struct ListNode* getKthFromEnd(…
题目 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6.这个链表的倒数第3个节点是值为4的节点. 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 思路 先统计链表节点个数 计算从前向后移动步数 代码 class Solution { public: ListNode* getKthFrom…
题目描述 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6.这个链表的倒数第3个节点是值为4的节点. 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 1.思路 先求出整个链表有多少个数据,然后向后移动n-k+1个位置就行了. 为什么是n-k+1呢?拿例子来说,n=5,k=2,n-k=3:如…
问题描述 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6.这个链表的倒数第3个节点是值为4的节点. 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 代码 /** * Definition for singly-linked list. * struct ListNode { * int…