http://baike.baidu.com/link?url=WzF8_CzDS20NTsEFJX1nhISqpnWTEoHhCuPQMMHCC_qjO89k6cqtfJkCf_9ndA4lJJyXMA5oWJiKTcPG61Z6ta#2_3
二叉树定义
publicclassTreeNode{
intval;
TreeNodeleft;
TreeNoderight;
TreeNode(intx){
val=x;
}
}
递归实现
publicvoidpreOrder(TreeNodebiTree){
System.out.printf(biTree.val+"");
TreeNodeleftTree=biTree.left;
if(leftTree!=null){
preOrder(leftTree);
}
TreeNoderightTree=biTree.right;
if(rightTree!=null){
preOrder(rightTree);
}
}
非递归实现
publicvoidpreOrder(TreeNodebiTree){
Stack<TreeNode>stack=newStack<TreeNode>();
while(biTree!=null||!stack.isEmpty()){
while(node!=null){
System.out.print(biTree.value+",");
stack.push(biTree);
biTree=biTree.left;
}
if(!stack.isEmpty()){
biTree=stack.pop();
biTree=biTree.right;
}
}
}