当前位置: 代码迷 >> 综合 >> 栈和队列:二叉树的前序遍历
  详细解决方案

栈和队列:二叉树的前序遍历

热度:64   发布时间:2024-01-20 03:05:27.0

二叉树的前序遍历

题目:用两种方式实现二叉树的前序遍历

方法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;
}

 

  相关解决方案