【leetcode-235】面试题 02.02. 返回倒数第 k 个节点

面试题 02.02. 返回倒数第 k 个节点

题目描述

【leetcode-235】面试题 02.02. 返回倒数第 k 个节点_第1张图片

思路分析

这是一道简单的题目,主要是运用快慢指针的思想,初始化两个指针都指向 head,然后先让快指针向前走 k 步,然后再让快指针和慢指针一起往前面走,直到快指针为空,也就是走到了链表的尾结点,这时候慢指针刚好停在了倒数第 k 个节点.有了思路代码实现就比较简单了.

代码实现

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public int kthToLast(ListNode head, int k) {
        ListNode fast = head;
        ListNode slow = head;
        for (int i = 0;i < k; i ++) {
            fast = fast.next;
        }
        while (fast != null) {
            fast = fast.next;
            slow = slow.next;
        }
        return slow.val;
    }
}

提交结果

【leetcode-235】面试题 02.02. 返回倒数第 k 个节点_第2张图片

你可能感兴趣的:(leetcode,leetcode,链表,算法)