1. 程式人生 > >LeetCode144. 二叉樹的前序遍歷(非遞迴演算法)

LeetCode144. 二叉樹的前序遍歷(非遞迴演算法)

給定一個二叉樹,返回它的 前序 遍歷。

示例:

輸入: [1,null,2,3]
1

2
/
3

輸出: [1,2,3]
進階: 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?

/**
 * 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> result; stack<TreeNode*> sta; //result.push_back(root->val); TreeNode* node = root; while (node != NULL || !sta.empty()) { while (node != NULL) { sta.push(node); result.push_back(node->val)
; node = node->left; } if (!sta.empty()) { node = sta.top(); sta.pop(); node = node->right; } } return result; } };