给定二叉树,我如何识别节点的左子节点(或节点本身的左子节点,但该部分相当简单)的子节点。
我正在处理表达式树,并且当我对树进行顺序遍历时,我试图从表达式中删除不必要的括号。我注意到,当一个节点的运营商离开时节点具有与节点相同的优先级时,不需要括号,但是在节点的右边需要括号(除非运算符都是+或*)。
public class ExpTree {
private int type;
private Object leafVal;
private ExpTree lChild, rChild;
public static final int NUM = 0, VAL = 1, OP = 2;
public ExpTree(int type, Object leafVal, ExpTree l, ExpTree r) {
this.type = type;
this.leafVal = leafVal;
this.lChild = l;
this.rChild = r;
}
}
我已经考虑过遍历整棵树,但这似乎效率低下。