1. 程式人生 > >O(1)空間複雜度刪除一棵二叉樹

O(1)空間複雜度刪除一棵二叉樹

{
 Node 
*stack = NULL;
 Node 
*= head->left,q;
 head
->left = stack;
 stack 
= head;
 
while(stack != NULL)
 
{
  
while(p != NULL)
  
{
   q 
= p;
   p 
= q->left;
   q
->left = stack;
   stack 
= q;
  }

  p 
= stack;
  
if(p->right != NULL)
  
{
   q 
= p;
   p 
= q->right;
   q
->right = NULL;  // 右子樹已經訪問完
  }

  
else
  
{
   stack 
= p->left;
   free(p);
   p 
= NULL;
  }

 }

}