题目描述:

解题思路:
因为题目给出的是倒数第k个节点,所以我们先要遍历ListNode,算出所有层数count。然后count - k,就是这个节点顺数的层数。然后我们再遍历ListNode,每遍历一次层数减1,层数为0的时候就是要求的当前层,返回此层的数据即可。
代码实现:
class Solution {
int count = 0;
public int kthToLast(ListNode head, int k) {
bianli(head);
return bianli2(head, count - k);
}
public void bianli(ListNode head){
if(head == null) return ;
count++;
bianli(head.next);
}
public int bianli2(ListNode head, int k){
if(k == 0) return head.val;
return bianli2(head.next, --k);
}
}
执行结果:

这篇博客介绍了如何通过递归算法解决链表中找到倒数第k个节点的问题。首先,遍历链表计算总节点数,然后再次遍历以找到目标节点。代码实现包括两个主要方法,一个用于获取链表总长度,另一个用于从指定位置开始查找节点。这种方法有效地解决了链表操作中的特定节点查找问题。
679

被折叠的 条评论
为什么被折叠?



