美文网首页
二叉树非递归遍历

二叉树非递归遍历

作者: 杰米 | 来源:发表于2016-12-16 13:11 被阅读12次
    //前序遍历
    class Solution {
    public:
        /**
         * @param root: The root of binary tree.
         * @return: Preorder in vector which contains node values.
         */
        vector<int> preorderTraversal(TreeNode *root) {
            // write your code here
            stack<TreeNode*>stack;
            TreeNode *p = root;
            vector<int>array;
            while(!stack.empty() || p) {
                while (p) {
                    array.push_back(p->val);
                    stack.push(p);
                    p = p->left;
                }
                
                if (!stack.empty()) {
                    p = stack.top();
                    stack.pop();
                    p = p->right;
                }
            }
            return array;
        }
    };
    
    

    相关文章

      网友评论

          本文标题:二叉树非递归遍历

          本文链接:https://www.haomeiwen.com/subject/mpynmttx.html