链表倒数第k个节点
question:输入一个链表,输出该链表中倒数第k个结点。
resolution:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public ListNode FindKthToTail(ListNode head,int k) {
if (head == null) return null;//考虑特殊情况
int len = 1;//注意起始值
int i = 1;//起始值不为0
ListNode tempHead = head;
ListNode result = null;
while (tempHead.next != null){
tempHead = tempHead.next;
len++;
}
int index = len - k +1;
while (head != null){//不用head.next==null,否则遍历不到最后一个节点
if(i == index){//先判断,再遍历和自增,注意先后顺序
result = head;
break;
}
head = head.next;
i++;
}
return result;
}
欢迎关注我的公众号:小秋的博客
CSDN博客:https://blog.csdn.net/xiaoqiu_cr
github:https://github.com/crr121
联系邮箱:rongchen633@gmail.com
有什么问题可以给我留言噢~
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步