校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 单向链表
题目

查找单链表中倒数第k个节点

解答

首先遍历一遍,得到链表的总长度size,然后再正序遍历(size-index)得到倒数第index个节点

/**
* 查找单链表中倒数第k个节点
* 首先遍历一遍,得到链表的总长度size,然后再正序遍历(size-index)得到倒数第index个节点
*
* @param head 链表头节点
* @param index 倒数第index个节点
* @return 返回倒数第index个节点
*/
public static HeroNode findLastNode(HeroNode head, int index) {
if (head == null) {
return null;
}
//得到链表的长度
int size = getLength(head);
//数据校验
if (index > size || index <= 0) {
return null;
}
//定义辅助变量
HeroNode targetNode = head.next;
for (int i = 0; i < size - index; i++) {
targetNode = targetNode.next;
}
return targetNode;


}

测试

//测试一下查找单链表中倒数第k个节点
int index = -1;
System.out.printf("倒数第%d个节点:" + findLastNode(singleLinkedList.getHead(), index), index);


C 0条回复 评论

帖子还没人回复快来抢沙发