昨晚中兴笔试题,第一题是给定二叉树,每个节点的数据结构是 value,left,right,比较根节点到各个叶子节点路径和的大小,输出路径和的最小值。(补充:用ArrayList可以存储)
以前没做过关于树的题,所以没想到如何处理各个节点的左右子节点,即不会遍历二叉树,在这里做一个总结
1.递归实现遍历
//递归实现遍历,各种不同的遍历实际上是输出的位置不同,但是都是递归
//先序遍历,传入 t = root1
public void preOrder(Node t){
if(t == null)
return;
System.out.println(t.getValue());
pre(t.getLeft());
pre(t.getRight());
}
//中序遍历,传入 t = root1
public void inOder(Node t){
if(t == null)
return;
inOrder(t.getLeft());
System.out.println(t.getValue());
inOrder(t.getRight());
}
//后序遍历,传入 t = root1
public void postOder(Node t){
if(t == null)
return;
postOrder(t.getLeft());
postOrder