首页 > 代码库 > Binary Tree Preorder Traversal

Binary Tree Preorder Traversal

Given a binary tree, return the preorder traversal of its nodes‘ values.

For example:
Given binary tree {1,#,2,3},

   1         2    /   3

 

return [1,2,3].

Note: Recursive solution is trivial, could you do it iteratively?

 1 /** 2  * Definition for binary tree 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     vector<int> preorderTraversal(TreeNode *root) {13         14         vector<int> vec;15         getVal(vec, root);16         return vec;17     }18     19     void getVal(vector<int> &vec, TreeNode *root){20         21         if(root != NULL){22             vec.push_back(root->val);23             getVal(vec, root->left);24             getVal(vec, root->right);25         }26     }27 };

 

Binary Tree Preorder Traversal