二叉树前序非递归遍历

简介: 二叉树前序非递归遍历二叉树前序非递归遍历
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
/*前序非递归de算法思想:
对于任意一个结点tmp:
a.若栈不空,弹出栈顶结点,如果栈顶指针tmp的右孩子存在则
将右孩子入栈,如果左孩子存在则将左孩子入栈
b.直到栈空位置,遍历结束
*/
class Solution {
//private:
  //  stack<TreeNode*> stk;    
public:
    vector<int> preorderTraversal(TreeNode* root) {
        stack <TreeNode*> stk;
        vector<int> out;
        if(!root) return out;
        TreeNode* tmp;
        stk.push(root);
        while(!stk.empty()) {
            tmp=stk.top();
            out.push_back(tmp->val);
            stk.pop();
            if(tmp->right){
                stk.push(tmp->right);
            }
            if(tmp->left){
                stk.push(tmp->left);
            }
        }
        return out;
    }
};
相关文章
|
存储 C++
非递归遍历二叉树
非递归遍历二叉树
51 0
|
6月前
|
存储
详解二叉树的各种非递归遍历
详解二叉树的各种非递归遍历
|
6月前
|
算法
二叉树的递归遍历和非递归遍历
二叉树的递归遍历和非递归遍历
30 0
|
存储 算法 C++
【二叉树】利用前序和中序遍历结果生成二叉树并输出其后序和层序遍历结果
【二叉树】利用前序和中序遍历结果生成二叉树并输出其后序和层序遍历结果
131 0
|
JavaScript 前端开发 Java
二叉树的先序、中序、后序遍历
二叉树的先序、中序、后序遍历
160 0
二叉树的先序、中序、后序遍历
|
C++
【C++】二叉树的遍历:前序、中序、后序、层序
【C++】二叉树的遍历:前序、中序、后序、层序
208 0
【C++】二叉树的遍历:前序、中序、后序、层序
|
开发工具
15分钟精通二叉树,二叉树的先序,中序,后序,层次遍历顺序
🍀🍀🍀理解,掌握二叉树先序,中序,后序,层次四种遍历顺序
181 0
15分钟精通二叉树,二叉树的先序,中序,后序,层次遍历顺序
【小白学算法】8.二叉树的遍历,前序、中序和后序
【小白学算法】8.二叉树的遍历,前序、中序和后序
【小白学算法】8.二叉树的遍历,前序、中序和后序
|
Java
二叉树面试题:前中序求后序、中后序求前序
在面试时,避免不了的会遇到一些数据结构的面试题,今天我们就来了解一下二叉树的经典面试题:
155 0