二叉樹反轉

二叉樹反轉,遞歸實現比較簡單,只需要交換父母節點的左右子節點就行,遞歸反轉左右子節點。

homebrew作者面試google時解不出這道題而被拒,本文給出c實現的二叉樹反轉,包括前中後遍歷,二叉樹的創建等。

反轉代碼如下:

void inverseBtree(tnode* root)
{
    if (NULL==root) {
        return;
    }

    tnode* tmp=root->left;
    root->left=root->right;
    root->right = tmp;

    inverseBtree(root->left);
    inverseBtree(root->right);
}

示例輸入輸出如下:

1
2
3
-1
4
-1
5
-1
6
7
-1
-1
8
-1
-1
-1
-1
12345678
34576821
78654321
******
12345687
12867543
87654321                                                                                    

樹的結構如下:
樹的結構

代碼鏈接:https://github.com/lilingyu/btreeInversion

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章