C++数据结构与算法之二叉树后序遍历

博客介绍了C++二叉树后序遍历的基本思想,通过创建两个栈,先将根节点压入栈,循环操作栈元素,根据节点左右孩子情况压栈,最后循环输出另一个栈元素。还提及了C++二叉树后序遍历代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++二叉树后序遍历基本思想

创建两个栈stk和res,先把根节点压入栈中,循环stk不为空,创建一个tmp节点赋值为栈顶元素,弹栈,把tmp压入另一个栈,如果tmp的左孩子不为空,就把左孩子压入栈,如果tmp的右孩子不为空就把后孩子压入栈,循环输出res栈顶元素,输出一个弹一个,循环条件res不能为空

C++二叉树后序遍历代码

void postOrderSortCure(TreeNode* root)
{
	if(root!=NULL)
	{
		postOrderSortCure(root->left);
		postOrderSortCure(root->right);
		cout<<root->val<<" ";
	}
}
void postOrderSort(TreeNode* root)
{
	stack<TreeNode*> stk;
	stack<TreeNode*> res;
	stk.push(root);
	while(!stk.empty())
	{
		TreeNode* tmp = stk.top();
		stk.pop();
		res.push(tmp);
		if(tmp->left) stk.push(tmmp->left);
		if(tmp->right) stk.push(tmp->right);
	}
	while(!res.empty())
	{
		cout<<res.top()->val<<" ";
		res.pop();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值