前序遍历
class Solution {
public:
/**
* @param root: A Tree
* @return: Preorder in ArrayList which contains node values.
*/
vector preorderTraversal(TreeNode * root) {
// write your code here
vectorresult;
if(root==nullptr)
return result;
stack<TreeNode *> stack1;
TreeNode * node=root;
stack1.push(root);
while(!stack1.empty()){
node=stack1.top();
stack1.pop();
result.push_back(node->val);
if(node->right!=nullptr){
stack1.push(node->right);
}
if(node->left!=nullptr){
stack1.push(node->left);
}
}
return result;
}
};
中序遍历
class Solution {
public:
/**
* @param root: A Tree
* @return: Inorder in ArrayList which contains node values.
/
vector inorderTraversal(TreeNode * root) {
// write your code here
vector result;
if(root==NULL)
return result;
stack<TreeNode>stack1;
while(root!=NULL||!stack1.empty()){
if(root!=NULL){
stack1.push(root);
root=root->left;
}
else
{
root=stack1.top();
stack1.pop();
result.push_back(root->val);
root=root->right;}}return result;}};
后序遍历
class Solution {
public:
/**
* @param root: A Tree
* @return: Inorder in ArrayList which contains node values.
/
vector inorderTraversal(TreeNode * root) {
// write your code here
vector result;
if(root==NULL)
return result;
stack<TreeNode>stack1;
while(root!=NULL||!stack1.empty()){
if(root!=NULL){
stack1.push(root);
root=root->left;
}
else
{
root=stack1.top();
stack1.pop();
result.push_back(root->val);
root=root->right;}}return result;}};