我需要执行三叉树的前序遍历。我很熟悉二叉树上的这种遍历,例如:
public void preorder(){
System.out.println(data);
if (left != null)
left.preorder();
if (right != null)
right.preorder();
}
按照 Root、Left、Right 的顺序遍历。我对如何添加中间子节点感到困惑。如果有人能解释这一点那就太好了。谢谢
最佳答案
n叉树的一般前序遍历如下:
- 遍历节点本身
- 如果存在,则遍历child0
- 如果存在,则遍历child1
- ...
- 如果存在,则遍历childn
二叉树恰好只有child0(左)和child1(右),但三叉树也有一个中间。所以你的遍历在遍历左子树和右子树之间会有一个额外的语句:
if (middle != null)
middle.preorder();
关于java - 三叉树的前序遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38800154/