当前位置:  开发笔记 > 编程语言 > 正文

二进制搜索树,inorder方法迭代不起作用

如何解决《二进制搜索树,inorder方法迭代不起作用》经验,为你挑选了1个好方法。



1> 小智..:

从我所看到的,你的代码在第二个while循环中存在一些问题.你的想法是正确的方向,但有一些逻辑错误.你拥有的条件是正确的,但不应该在一起,它们应该是分开的.下面的代码实现了您的目标.

public void inOrder(){                
    // implement this method using non-recursive solution
   if(m_root==null){
      return;
   }
   Stack myStack= new Stack();
   BSTNode current=m_root;
   while (current!= null){
      myStack.push(current);
      current=current.getLeft();
   }
   while (!myStack.isEmpty()){
      current=(BSTNode)myStack.pop();
      System.out.print(current.getInfo()+" ");
      if(current.getRight() != null){
         current=current.getRight();
         while (current!= null){
            myStack.push(current);
            current=current.getLeft();
         }
      }
   }

}

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有