刪除一顆二叉樹

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;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,921評論 0 33
  • 目錄 簡書的 markdown 都不支持 [TOC] 語法……我就不貼目錄了。下面按照類別,列出了29道關(guān)于二叉樹...
    被稱為L的男人閱讀 3,439評論 0 8
  • 文/小家碧玉(河南) 在如火的季節(jié)里 孕育滿腔的熱情 在綠葉的濃蔭中誕生 花兒妖嬈 美艷絕倫 似一團(tuán)火在燃燒 跳躍...
    小家碧玉_9512閱讀 617評論 1 0
  • “我收到過的鮮花都是別人的男朋友或者老公送我的,這就是我對愛情及婚姻如此不信任的原因?!?/div>
    九兒Nina閱讀 173評論 0 0
  • 早已記不起從什么時(shí)候開始聽民謠的,只記得第一次聽過民謠以后,就有一種強(qiáng)烈的共鳴。不做作,不矯情,又接地氣。如同白開...
    姜小濤閱讀 1,070評論 3 8

友情鏈接更多精彩內(nèi)容