void PreOrder(TreeNode* root)
{
print root->value;
PreOrder(root->left);
PreOrder(root->right);
}
void PreOrder(TreeNode* root)
{
if(root == NULL)
return;
stack.push(root);
while(!stack.IsEmpty)
{
TreeNode node = stack.pop();
print node->value;
if(node->right != NULL) stack.push(node->right);
if(node->left != NULL) stack.push(node->left);
}
}
先序递归
本文介绍了一种遍历二叉树的方法——先序遍历,并提供了两种实现方式:递归实现和非递归实现(使用栈)。递归方法直接且易于理解,而非递归方法则展示了如何通过栈来跟踪节点,适用于需要手动控制流程的情况。
2724

被折叠的 条评论
为什么被折叠?



