问答题 写一个递归算法来计算并返回链表的长度。
【正确答案】(1)数据结构
   采用不带头结点的单链表定义。
   (2)算法
   int length(LinkList llist){  /*计算单链表llist的长度*/
       if(llist==NULL)
           return 0;
       return 1+length(llist->link);
   }
   (3)代价分析
   该算法访问每个结点各一次,故时间代价为O(n)。
【答案解析】学会用递归的思想分析问题,编写递归函数在许多情况下可以使程序非常精练,而且可读性好。读者不难用一个循环来代替递归调用,实现同样的功能。试写出本题的非递归函数并且与递归函数比较,从中领会递归与非递归的联系。