由于单链表只能从头到尾依次访问链表的各个节点,因此,如果要找到链表的倒数第k个元素的话,也只能从头到尾进行遍历查找,在查找过程中,设置两个指针,让其中一个指针比另一个指针先前移k-1步,然后两个指针同时往前移动。循环直到线性的指针值为NULL时,另一个指针所指向的位置就是所要找到的位置。代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace repicropal { class Program { static void Main(string[] args) { LinkedListlist = new LinkedList(); list.AddLast("1"); list.AddLast("2"); list.AddLast("3"); list.AddLast("4"); Console.WriteLine(GetReciprocalElement2(list, 4).Value); } static LinkedListNodeGetReciprocalElement1(LinkedListlist, int reciprocalIndex) { LinkedListNodetemp = null; LinkedListNodehead = list.First; int index = 1; if (list.Count