スタックとキュー:ツリーの前順ループ
751 ワード
ツリーの前順遍歴
タイトル:二叉木の前序遍歴を二つの方法で実現する
方法1:再帰
方法2:スタックで前シーケンスループを実現する
タイトル:二叉木の前序遍歴を二つの方法で実現する
方法1:再帰
void preOrder(TreeNode *root)
{
if(root == NULL)
return;
visit(root);
preOrder(root->left);
preOrder(root->right);
}
方法2:スタックで前シーケンスループを実現する
vector preOrder(TreeNode *root)
{
vector result;
stack 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;
}