LinCode 二叉树的前中后遍历

本文介绍了二叉树的前序、中序和后序遍历的非递归实现方法。前序遍历采用栈,顺序为根左右;中序遍历遵循左根右原则;后序遍历参照特定博客完成详细解释。
摘要由CSDN通过智能技术生成

二叉树的前中后序遍历,前序遍历,根左右;中序遍历,左根右;后续遍历,左右根。非递归

这里写图片描述
二叉树的前序遍历
方法1,这个完全是我自己想的。在做完用队列实现二叉树的层次遍历后,按照这个思路,写了这个算法。
1,判断是否空树,如果是,则返回空;如果不是,则根入栈
2,栈不是空的,进入循环。新建一个树结点,把根赋给它,根出栈,对根处理;然后判断根是否有右子树,如果有则进栈;同理,判断是否有左子树,如果有则进栈。第一遍循环结束,然后再循环,直到遍历完。

vector<int> preorderTraversal(TreeNode *root) {
       vector<int>vec;
       if( ! root)
           return vec;
        stack<TreeNode *>stack;
        stack.push(root);
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值