力扣题解:面试题 02.02. 返回倒数第 k 个节点
题目
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 示例: 输入: 1->2->3->4->5 和 k = 2 输出: 4 说明: 给定的 k 保证是有效的。
解题思路
方法1:快慢指针
快慢指针相差k个节点的距离当快指针到达链表末尾,慢指针指向倒数第k个节点 方法2:2次遍历(不提供代码)第一次遍历计算出链表长度length,第(length-k+1)个节点即为倒数第k个节点第二次遍历,找到第(length-k+1)个节点
代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
pu
共有 0 条评论