二叉树系列(4)趣图_二叉树的轴对称树

本文介绍如何根据给定的二叉树,创建一棵与其轴对称的新二叉树。通过递归方法,记录节点的父节点信息,来构造新树的结构。此外,还提及了一个将原树轴对称变换的简洁实现。
摘要由CSDN通过智能技术生成

给定一个二叉树,创建一颗新的二叉树,使得新树和原树具有轴对称关系。比如把下面左图中的树经过轴对称变化改为下面右图中的树。

从树的结构看,适合仿照递归遍历的思路,完成新树的创建,这里和递归遍历不同的是,每次需要记录一下当前节点的父节点的信息,要不然没法链成一颗树。

copy_t为原树中待拷贝的节点,parent_t为新树中的拷贝副本节点的父节点。is_left判断当前进行拷贝的节点为parent_t的左孩子还是右孩子。

参考如下:

link mirror_tree(link parent_t,link copy_t, int is_left)
{
	if(!copy_t)
		return NULL;
	link new_root=make_node(copy_t->item);
	if(parent_t!=NULL&&is_left==1)//当前节点不是根节点,且是parent的左孩子
		parent_t->l=new_root;
	if(parent_t!=NULL&&is_left==0)//当前节点不是根节点,且是parent的右孩子
		parent_t->r=new_root;		
	mirror_tree(new_root, copy_t->r, 1);
	mirror_tree(new_root, copy_t->l, 0);
	return new_root;
	
}

然后在这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值