二叉樹反轉

2021-07-10 07:47:14 字數 678 閱讀 2316

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

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

反轉**如下:

void inversebtree(tnode* root)

tnode* tmp=root->left;

root->left=root->right;

root->right = tmp;

inversebtree(root->left);

inversebtree(root->right);

}

示例輸入輸出如下:

123

-14-15

-167-1

-18-1-1

-1-1

12345678

34576821

78654321

******

12345687

12867543

87654321

樹的結構如下:

LeetCode (二叉樹)反轉二叉樹

遞迴交換每乙個節點的左右子樹,重點在於訪問每乙個節點,然後交換左右子樹 definition for a binary tree node.struct treenode struct treenode inverttree struct treenode root 由於至少要講每乙個節點都訪問一次...

資料結構 二叉樹 反轉二叉樹

include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...

二叉樹反轉(java版)

definition for a binary tree node.class treenode 方法一 遞迴方式 最容易想到的方式最先實現。遞迴方式 public treenode inverttree treenode root 遞迴反轉左右子樹 treenode temp root.left ...