问题1:给定一个单项链表,设计一个时间优化并且时间优化的算法,找出该链表的倒数第m个元素。当m=0时,返回链表的最后一个元素。 [分析:用双指针来实现,两指针间隔m。同步移动两指针,当前一个指针为该链表tail时,后一个指针就为要找的元素] Element * FindMToLastElement( Element * head, int m) ...{ Element * current, * mBehind; int i; current = head;
for( i = 0; i < m; i++) ...{ if(current->next) ...{ current = current->next; } else ...{ return NULL; } }