zoukankan      html  css  js  c++  java
  • 二叉树的前序遍历

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        vector<int> preorderTraversal(TreeNode* root) {
            vector<int> vec;
            preOrder(root, vec);
            return vec;
        }
        //递归写法
        /*
        void preOrder(TreeNode *root, vector<int> &path)
        {
            if (root)
            {
                path.push_back(root->val);
                preOrder(root->left, path);
                preOrder(root->right, path);
            }
        }
        */
        //非递归写法
        void preOrder(TreeNode *root, vector<int> &path)
        {
            stack<TreeNode *> TreeNodeStack;
             
            while (root != NULL || !TreeNodeStack.empty())
            {
                while (root != NULL)
                {
                    path.push_back(root->val);
                    TreeNodeStack.push(root);
                    root = root->left;
                }
                if (!TreeNodeStack.empty())
                {
                    root = TreeNodeStack.top();
                    TreeNodeStack.pop();
                    root = root->right;
                }
            }
        }
    };

     

  • 相关阅读:
    空间轴向对齐变换
    购买服务器,搭建服务器服务器
    软件工程第四次作业:猫狗大战挑战赛
    软件工程第三次作业:卷积神经网络
    04卷积神经网络
    03深度学习的数学基础
    mfc回显信息
    软件工程第二次作业:深度学习和pytorch基础
    python 机器学习第二章(感知器学习算法)
    python 机器学习第一章
  • 原文地址:https://www.cnblogs.com/gofighting/p/5411729.html
Copyright © 2011-2022 走看看