zoukankan      html  css  js  c++  java
  • 剑指 Offer 22. 链表中倒数第k个节点

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

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

    问题描述:

    输入一个链表,输出该链表中倒数第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.
     * class ListNode(var _x: Int = 0) {
     *   var next: ListNode = null
     *   var x: Int = _x
     * }
     */
    object Solution {
        def getKthFromEnd(head: ListNode, k: Int): ListNode = {
            var (fast, slow) = (head, head)
            var num = k
            while (num > 0) {
                fast = fast.next
                num -= 1
            }
            while (fast != null) {
                fast = fast.next
                slow = slow.next
            }
            return slow 
        }
    }
    
    /**
     * Definition for singly-linked list.
     * type ListNode struct {
     *     Val int
     *     Next *ListNode
     * }
     */
    import "fmt"
    func getKthFromEnd(head *ListNode, k int) *ListNode {
        //dummyHead := &ListNode{Val:0, Next:head}
        fast := head
        for k > 0 {
            //if fast.Next != nil {fast = fast.Next}
            fast = fast.Next
            k -= 1
        }
    
        for fast != nil {
            fast = fast.Next
            head = head.Next
        }
    
        return head
    }
    
  • 相关阅读:
    MSDN2010安装及使用(MSDN Library)[转]
    单元测试那些事
    Nhibernate Profiler安装中的问题
    ztree的动态添加
    事件与委托
    linux ls dir
    学习技术资料的思路
    linux目录结构
    是否需要深入了解java平台
    工作中心的改变
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/14190083.html
Copyright © 2011-2022 走看看