一种二叉树前序非递归遍历方法

节点结构:

1 class TreeNode(){
2 
3   public String data;
4 
5   public TreeNode leftChild;
6 
7   public TreeNode rightChild;
8 
9 }

前序遍历的一种方法(原创):

 1 public void levelOrder3(TreeNode p){
 2     if(p == null) return ;
 3     Stack<TreeNode> stack = new Stack<TreeNode>();
 4     TreeNode node = p;
 5     stack.push(node);
 6     while(!stack.isEmpty()){
 7         node = stack.pop();
 8         visit(node);
 9         if(node.rightChild!= null) stack.push(node.rightChild);
10         if(node.leftChild != null) stack.push(node.leftChild);
11     }
12 }

 注意要定义自己的visit()访问节点的方法。

谁用谁知道,用过的都说好。

 

posted @ 2015-08-01 23:07  jackieha  阅读(144)  评论(0)    收藏  举报