144:
Given the root
of a binary tree, return the preorder traversal of its nodes' values.
Example 1:
Input: root = [1,null,2,3] Output: [1,2,3]
Example 2:
Input: root = [] Output: []
Example 3:
Input: root = [1] Output: [1]
Constraints:
- The number of nodes in the tree is in the range
[0, 100]
. -100 <= Node.val <= 100
Follow up: Recursive solution is trivial, could you do it iteratively?
前序遍历:
class Solution {
public:
void travelsal(TreeNode*curr,vector<int>&vec){
if(curr==NULL)return;
vec.push_back(curr->val);
travelsal(curr->left,vec);
travelsal(curr->right,vec);
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int>result;
travelsal(root,result);
return result;
}
};
中序遍历:
class Solution {
public:
void travelsal(TreeNode*curr,vector<int>&vec){
if(curr==NULL)return;
travelsal(curr->left,vec);
vec.push_back(curr->val);
travelsal(curr->right,vec);
}
vector<int> inorderTraversal(TreeNode* root) {
vector<int>result;
travelsal(root,result);
return result;
}
};
后序遍历:
class Solution {
public:
void travelsal(TreeNode*curr,vector<int>&vec){
if(curr==NULL)return;
travelsal(curr->left,vec);
travelsal(curr->right,vec);
vec.push_back(curr->val);
}
vector<int> postorderTraversal(TreeNode* root) {
vector<int>result;
travelsal(root,result);
return result;
}
};