2.3.2 单链表中基本操作的实现

 二、销毁结构操作

算法 算法2.14
  void DestroyList( SLink &L)
 {
  // 销毁以L为头指针的单链表,释放链表中所有结点空间
  while (L)
  {
   p = L;
   L = L->next;
   delete p;
  } // while
  L = NULL;
 } // DestroyList

  算法的时间复杂度O (Listlength(L))
 


  "销毁结构"的操作是在该链表的使命已经完成之后进行的,则应将它占有的空间"释放"。但在C++语言中,析构函数是在类对象生命期结束的时候由系统自动调用。

  思考题 算法中为什么要加上L=NULL 的语句?