Leetcode: binary-tree-preorder-traversal(非递归版)

来源:互联网 发布:php 用pack打包数据包 编辑:程序博客网 时间:2024/06/05 13:23

Leetcode: binary-tree-preorder-traversal

Given a binarytree, return the preorder traversal of itsnodes' values.

思路:运用栈,根->左->右,先遍历左,那就需要先把右节点入栈,再将左节点入栈,这样出棧的时候,才能左节点先出,后出右节点。

代码如下:

vector<int> preorderTraversal(TreeNode *root) {        vector<int> res;        stack<TreeNode *> node_stack;        if(root!=NULL)            {            node_stack.push(root);            while(!node_stack.empty())                {                TreeNode *temp = node_stack.top();                node_stack.pop();                res.push_back(temp->val);                if(temp->right)                    node_stack.push(temp->right);                if(temp->left)                    node_stack.push(temp->left);            }        }        return res;    }


阅读全文
0 0
原创粉丝点击