第一种方式(递归)
代码:
//先序遍历--递归
public void theFirstTraversal(Node n){
printNode(n);
if(n.getLeftNode()!=null)
theFirstTraversal(n.getLeftNode());
if(n.getRightNode()!=null)
theFirstTraversal(n.getRightNode());
}
第二种方式(放入堆栈)
代码:
//先序遍历--堆栈
public void theFirstTraversalStack(Node root){
Stack<Node> stack=new Stack<Node>();
Node node=root;
while (node!=null || stack.size()>0){
if(node!=null){
printNode(node);
stack.push(node);
node=node.getLeftNode();
}else{
node=stack.pop(); //跳出的作用找到其根节点
node=node.getRightNode();
}
}
}