链表中倒数第k个结点
2016-11-18 16:00
225 查看
题目描述
输入一个链表,输出该链表中倒数第k个结点。解题思路:
方案一(遍历两遍):先遍历一遍链表获取链表长度为N,正序遍历找到第N-K个节点就是倒数第K个节点。
方案二(遍历一遍):倒数第K个元素和最后面的元素之间的距离是K-1,因此首先定义指针p1,走K-1步长。然后定义指针p2,与p1一起往后走,直到p1 == null为止,此时p2所指即为倒数第K节点位置。注意:边界条件的书写!!!
package 链表;
public class 链表中倒数第K个节点 {
public static ListNode findKthToTail(ListNode head, int k) {
ListNode p1 = head;
if(head==null||k<=0){ //注意边界情况的处理!!!
return null;
}
for (int i = 0; i < k; i++) {
if (p1 != null) { //如果K大于链表长度
p1 = p1.next;
} else {
return null;
}
}
ListNode p2 = head;
while (p1 != null) {
p1 = p1.next;
p2 = p2.next;
}
return p2;
}
}
相关文章推荐
- 找到链表倒数第K个结点
- 程序员面试宝典——(09)-查找链表中倒数第k个结点
- 输入一个链表,输出该链表中倒数第k个结点。
- 剑指offer面试第15题:链表中倒数第k个结点
- 每天一个小算法(5)----找到链表倒数第K个结点
- 14 链表中倒数第k个结点
- 【剑指offer】Q15:链表中的倒数第K个结点
- 链表中倒数第k个结点
- 链表中倒数第k个结点
- 剑指offer之链表中倒数第k个结点(Python)
- 查找单链表中倒数第k个结点||旋转单链表
- 链表中倒数第k个结点
- 剑指Offer:链表中倒数第k个结点
- 输入一个链表,输出该链表中倒数第k个结点。
- [置顶] 输入一个链表,输出该链表中倒数第k个结点。
- CCI 2.2 找出单向链表中倒数第k个结点
- 链表中倒数第k个结点
- 输入一个链表,输出该链表中倒数第k个结点。
- 链表中倒数第k个结点(代码的鲁棒性 链表)
- 代码的鲁棒性:链表中倒数第k个结点