标签:val else tree share return image ret rtt arp

逆转二叉树 代码练手
#include <iostream>
#include <memory>
using namespace std;
struct TreeNode{
int val;
shared_ptr<TreeNode> left;
shared_ptr<TreeNode> right;
};
void PrintTree(shared_ptr<TreeNode> root)
{
if (!root)
return;
cout << root->val << " ";
PrintTree(root->left);
PrintTree(root->right);
return;
}
shared_ptr<TreeNode> CreateNode(int i)
{
shared_ptr<TreeNode> p(new TreeNode());
p->val = i;
return p;
}
void InsertNode(shared_ptr<TreeNode>& root,int i)
{
if (!root)
{
root = CreateNode(i);
return;
}
if (i > root->val)
{
InsertNode(root->right, i);
}
else if (i < root->val)
{
InsertNode(root->left, i);
}
else if (i == root->val)
return;
return;
}
shared_ptr<TreeNode> InvertTree(shared_ptr<TreeNode>& root )
{
if (!root)
return root;
shared_ptr<TreeNode> tmp = root->left;
root->left = InvertTree(root->right);
root->right = InvertTree(tmp);
return root;
}
int main()
{
shared_ptr<TreeNode> root = CreateNode(4);
InsertNode(root, 2);
InsertNode(root, 7);
InsertNode(root, 1);
InsertNode(root, 3);
InsertNode(root, 6);
InsertNode(root, 9);
PrintTree(root);
InvertTree(root);
cout << endl;
PrintTree(root);
return 0;
}
输出:
4 2 1 3 7 6 9
4 7 9 6 2 3 1
标签:val else tree share return image ret rtt arp
原文地址:http://www.cnblogs.com/itdef/p/6082792.html