删除一颗二叉树

To delete a tree we must traverse all the nodes of the tree and delete them one by one. So which traversal we should use – Inorder or Preorder or Postorder.Answer is simple – Postorder, because before deleting the parent node we should delete its children nodes first。

/*
  This function is same as deleteTree() in the previous program
 */
void _deleteTree(struct node* node)
{
    if (node == NULL) return;
 
    /* first delete both subtrees */
    _deleteTree(node->left);
    _deleteTree(node->right);
 
    /* then delete the node */
    printf("\n Deleting node: %d", node->data);
    free(node);
}
 
/* Deletes a tree and sets the root as NULL */
void deleteTree(struct node** node_ref)
{
  _deleteTree(*node_ref);
  *node_ref = NULL;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,927评论 0 33
  • 目录 简书的 markdown 都不支持 [TOC] 语法……我就不贴目录了。下面按照类别,列出了29道关于二叉树...
    被称为L的男人阅读 3,447评论 0 8
  • 文/小家碧玉(河南) 在如火的季节里 孕育满腔的热情 在绿叶的浓荫中诞生 花儿妖娆 美艳绝伦 似一团火在燃烧 跳跃...
    小家碧玉_9512阅读 617评论 1 0
  • “我收到过的鲜花都是别人的男朋友或者老公送我的,这就是我对爱情及婚姻如此不信任的原因。”
    九儿Nina阅读 173评论 0 0
  • 早已记不起从什么时候开始听民谣的,只记得第一次听过民谣以后,就有一种强烈的共鸣。不做作,不矫情,又接地气。如同白开...
    姜小涛阅读 1,077评论 3 8

友情链接更多精彩内容