题目描述
输入一个链表,输出该链表中倒数第k个结点。
分析
本题主要注意以下几点:
- k是否合法,比如k大于链表长度了就不合法、k<=0也不合法
- 倒数的第k个,对于长度为len的链表来说,就是正数第len-k+1个,所以得先遍历一次链表求出长度
代码实现
/*function ListNode(x){ this.val = x; this.next = null; }*/ function FindKthToTail(h, k) { if(h === null || k <= 0) return null; var len = 0; var cur = h; while(cur !== null) { len++; cur = cur.next; } if(k > len){ return null; } var index = len - k + 1; cur = h; while(index !== 1){ cur = cur.next; index--; } return cur; }