zoukankan      html  css  js  c++  java
  • 剑指offer(14)链表中倒数第K个节点

    题目描述

    输入一个链表,输出该链表中倒数第k个节点。

    题目分析

     用两个指针来跑,两个指针中间相距k-1个节点,第一个指针先跑,跑到了第k个节点时,第二个指针则是第一个节点。

    这时候两个一起跑。当第一个跑到了最后一个节点时,这时候第一个指针则是倒数第k个节点。

    代码

    /* function ListNode(x){
     this.val = x;
     this.next = null;
     }*/
    function FindKthToTail(head, k) {
      if (head === null || k <= 0) return null;
      let pNode1 = head,
        pNode2 = head;
      while (--k) {
        if (pNode2.next !== null) {
          pNode2 = pNode2.next;
        } else {
          return null;
        }
      }
      while (pNode2.next !== null) {
        pNode1 = pNode1.next;
        pNode2 = pNode2.next;
      }
      return pNode1;
    }
  • 相关阅读:
    MATLAB01
    Diffie-Hellman 密钥交换
    古典密码
    正则表达式
    装饰器初析
    进制转换的栈实现
    Log4j(异常日志)
    2018/6/6
    2018.1.1T19B3-u4
    2018.1.1T19-B3-U3jiangyi
  • 原文地址:https://www.cnblogs.com/wuguanglin/p/FindKthToTail.html
Copyright © 2011-2022 走看看