给定一棵二叉树,使用递归的方式实现二叉树左右子树交换,并输出后序遍历结果,要求完善以下代码#include "binary_tree.h" … /********** Begin / /* End **********/ }
时间: 2023-09-02 16:15:47 浏览: 44
以下是完善后的代码:
```cpp
#include "binary_tree.h"
/********** Begin **********/
void swapTree(TreeNode* root) {
if (!root) {
return;
}
TreeNode* temp = root->left;
root->left = root->right;
root->right = temp;
swapTree(root->left);
swapTree(root->right);
}
void postOrder(TreeNode* root) {
if (!root) {
return;
}
postOrder(root->left);
postOrder(root->right);
cout << root->val << " ";
}
/* End **********/
int main() {
// 构造二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
cout << "Original tree: ";
postOrder(root);
cout << endl;
swapTree(root);
cout << "Swapped tree: ";
postOrder(root);
cout << endl;
return 0;
}
```
在 `swapTree` 函数中,我们首先交换当前节点的左右子树,然后递归地交换左右子树的左右子树。在 `postOrder` 函数中,我们按照左右根的顺序遍历二叉树并输出节点值。在 `main` 函数中,我们构造一个测试用的二叉树并输出交换前后的后序遍历结果。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)