【发布时间】:2021-02-13 18:33:13
【问题描述】:
在下面的二叉树中,除了叶子节点之外的所有节点都是空的。我正在尝试将叶子输出到与它旁边的编码表相同的位置。
对于这种方法,这是我所拥有的:
public static void printCodes(MsgTree root, String encoding) {
if (root.left == null && root.right == null) {
System.out.println(root.payloadChar + " --is-- " + encoding);
} else {
if (root.left != null) {
encoding += '0';
printCodes(root.left, encoding);
} if(root.right!=null) {
encoding += '1';
printCodes(root.right, encoding);
}
}
}
但是,这是我得到的输出:
a --is-- 0
! --是-- 0100
d --is-- 010010
c --is-- 0100101
r --is-- 01010
b --is-- 010101
所以我认为我的问题与多余的0有关,如何纠正它?
【问题讨论】:
标签: java recursion data-structures binary-tree