输入一个链表,输出该链表中倒数第k个结点。
第一种方法思路:
找出一共有多少个节点倒数第k个是正数第几个? function FindKthToTail(head, k) { if(head == null) { return null; } let p = head; let num = 0; while(p !== null) { p = p.next; num++; } if (k > num){ return null; } p = head; for(let i = 0;i<num -k;i++){ p = p.next; } return p; }第二种方法思路:
定义两个指针让它们相差k个节点当前一个指针指向null当的时候说明前一个指针就指向了倒数第k个节点 function FindKthToTail(head, k) { if(head === null) { return null; } let p = head; let q = head; for (let i = 0 ;i<k;i++){ if(q === null){ // 当k大于总节点时 return null; } q = q.next; } while(q !== null) { q = q.next; p = p.next; } return p; }