2.找出单链表的倒数第4个元素
这道题目有两种算法,但无论哪种算法,都要考虑单链表少于4个元素的情况:第一种情况,建立两个指针,第一个先走4步,然后第2个指针也开始走,两个指针步伐【前进速度】一致。
static Link GetLast4thOne(Link head)
{
Link first = head;
Link second = head;
for(int i=0;i<4;i++)
{
if(first.Next==null)
throw new Exception(“Less than 4 elements”);
first = first.Next;
}
while(first!=null)
{
first = first.Next;
second = second.Next;
}
return second;
}
第二种算法,做一个数组arr【4】,让我们遍历单链表,把第0个,第四个,第八个。。。。第4N个扔到arr【0】,把第一个,第五个,第9个。。。。第4N+1个扔到arr【1】,把第二个,第六个,第十个。。。。第4N+2个扔到arr【2】,把第三个,第7个,第11个。。。。第4N+3个扔到arr【3】,这样随