美文网首页
删除一颗二叉树

删除一颗二叉树

作者: lintong | 来源:发表于2015-02-28 13:37 被阅读15次

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;
}

相关文章

  • 数据结构题目50:二叉树的删除

    题目:删除二叉树的结点。这里所说的二叉树的删除是指 删除并释放该二叉树中数据域内容为item的那个结点和以该结点为...

  • 64_二叉树的结点删除与清除

    关键词:二叉树的结点的删除、二叉树的结点的清除 0. 删除的方式 基于数据元素值的删除:SharedPointer...

  • 删除一颗二叉树

    To delete a tree we must traverse all the nodes of the tr...

  • 普林斯顿算法中级笔记7(优先队列)

    什么是优先队列 一个普通队列在删除时,删除最大或者最小的元素 方法定义 二叉树(后面将之成为堆) 节点为N的二叉树...

  • 二叉树操作

    树节点 逐行顺序解析二叉树 前序遍历二叉树 中序遍历二叉树 后序遍历二叉树 删除指定数值的节点 前序遍历顺序存储的...

  • 二叉树总结(Python)

    一、创建 二叉树结点类的定义: 使用结点类可以直接创建一颗小型的二叉树做测试用: 1、从列表创建一颗二叉树 假设列...

  • 二叉树

    1.二叉树的遍历:前序、中序、后序遍历 2.二叉树查找节点和删除节点的代码

  • 二叉树查找与节点删除的javascript实现

    前言 紧接前面说过的 二叉树的实现 和 二叉树的遍历,今天来说一下用javascript实现二叉树的查找和节点删除...

  • 计算二叉树叶子节点之和

    给定一颗二叉树,从根节点到叶子节点组成一个数,计算一颗二叉树所有叶子节点之和 leetcode 地址:https:...

  • 二叉树按层遍历-插入-删除

    三个问题 二叉树按层遍历 给定指定n个节点,二叉树有多少种组合 二叉树插入删除,保持顺序 思路 通过队列保存缓存结...

网友评论

      本文标题:删除一颗二叉树

      本文链接:https://www.haomeiwen.com/subject/smwpxttx.html