题目:给定一个单向链表,请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素。实现这个算法。“倒数第m个元素”是这样规定的:当m=0时,链表的最后一个元素(尾元素)将被返回。
分析:单链表是只能正向遍历的,并不适合查找倒数第m个元素,如果需要这类操作,在实际应用中也不会用到单链表(也许你会选择双向链表)。这里只是就题论题。
第一个比较简单的思路是按照正序遍历链表,然后针对遍历的当前元素判断其是否是倒数第m个元素(有点类似于二重循环)。伪代码如下:
遍历链表,node表示当前链表节点
判断node是否是倒数第m各元素,如果是则直接返回,如果不是继续循环
直到链