gpt4 book ai didi

java - 树的递归和非递归遍历

转载 作者:行者123 更新时间:2023-12-01 07:10:23 25 4
gpt4 key购买 nike

通过在二叉搜索树上执行递归和非递归前序遍历,我没有得到相同的结果

递归方法

public static void preorder(TreeNode root) {
if (root == null)
return;
else {
System.out.print(root);
inorder(root.getLeftPtr());
inorder(root.getRightPtr());
}
}

非递归方法

public static void preorder2(TreeNode root){
if(root==null)return;
Stack<TreeNode> stack=new Stack<TreeNode>();

while(true){
while(root!=null){
//process current Node
System.out.print(root);
stack.push(root);
root=root.getLeftPtr();
}
if(stack.isEmpty())break;
root=stack.pop();
root=root.getRightPtr();
}

}

结果

      recursive method-> 10-> 5-> 6-> 8-> 12-> 15-> 20
non recursive method-> 10-> 6-> 5-> 8-> 15-> 12-> 20

最佳答案

我认为你的递归方法应该是这样的,

public static void preorder(TreeNode root) {
if (root == null)
return;
else {
System.out.print(root);
preorder(root.getLeftPtr());
preorder(root.getRightPtr());
}
}

关于java - 树的递归和非递归遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15587177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com