码迷,mamicode.com
首页 > 其他好文 > 详细

逆转二叉树

时间:2016-11-20 18:29:41      阅读:163      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!