美文网首页
剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点

作者: 码上新视界 | 来源:发表于2020-09-21 16:50 被阅读0次

    [toc]

    题目

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

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

    题解

    
     ListNode fast = head;
            ListNode slow = head;
            if(slow == null) {
                return null;
            }
    
            int index = 0;
            for(;index < k && fast != null; index++) {
                fast = fast.next;
                
            }
            // 快指针还没走到k这个差距
            if(index != k) {
                return null;
            }
    
            while(fast != null) {
                fast = fast.next;
                slow = slow.next;
            }
    
            return slow;
    
    

    相关文章

      网友评论

          本文标题:剑指 Offer 22. 链表中倒数第k个节点

          本文链接:https://www.haomeiwen.com/subject/lfovyktx.html