单链表新浪面试题:求单链表中有效节点个数和查找单链表中倒数第k个节点

1)求单链表中有效节点个数

① 定义一个getLength()方法,传入的参数为一个链表的头节点。

②通过length 来记录链表结点个数。

③通过while语句来遍历链表

下图为代码实现:

单链表新浪面试题:求单链表中有效节点个数和查找单链表中倒数第k个节点_第1张图片

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

①定义一个findLastIndexNode()方法,传入的参数为一个链表的头节点和常数k(程序中用index替代)。

②index 表示的是倒数index 个节点。

③先把链表从头到尾遍历一下,得到链表总长度size ,此处调用getLength()方法。

④得到size 后,从链表的第一个开始遍历到(size - index)个。

⑤如果找到了,返回该节点。否则返回null。

下图为代码实现:

单链表新浪面试题:求单链表中有效节点个数和查找单链表中倒数第k个节点_第2张图片

你可能感兴趣的:(java,数据结构,面试,链表)