文章目录
求二叉树的遍历(递归和迭代实现)
前序遍历
- 求二叉树的遍历(递归和迭代实现)
-
-
- 前序遍历
- 中序遍历
- 后序遍历
-
- 递归实现,先根节点,在左子树,在右子树注意构造辅助函数
class Solution {
public:
void _preorderTraversal(TreeNode* root,vector& v)
{
if(root==NULL)
{
return ;
}
v.push_back(root->val);
_preorderTraversal(root->left,v);
_preorderTraversal(root->right,v);
}
vector preorderTraversal(TreeNode* root)
{
vector v;
_preorderTraversal(root,v);
return v;
}
};
- 迭代实现,先把根节点值放入数组,再把左路节点全部入栈,然后按栈的性质来访问
class Solution {
public:
vector preorderTraversal(TreeNode* root