二叉树的前序遍历
题目:用两种方式实现二叉树的前序遍历
方法1:递归
void preOrder(TreeNode *root)
{if(root == NULL)return;visit(root);preOrder(root->left);preOrder(root->right);
}
方法2:用栈实现前序遍历
vector<int> preOrder(TreeNode *root)
{vector<int> result;stack<TreeNode*> helper;if(root == NULL) return result;while(root || !helper.empty()){if(root){result.push(root->val);helper.push(root);root = root->left;}else{root = helper.top();helper.pop();root = root->right;}}return result;
}