我有一个二叉树的根节点,我想遍历所有节点并为每个节点创建一个键。但是只要找到第一个节点,函数就会停止。
这是我的功能:
public void createKey(Node root,String s,HashMap<String,String> map){
if(root==null)
return;
if(root.right==null&&node.left==null) {
hashMap.put(node.symbol, s);
}
createKey(node.left, s + "0",hashMap);
createKey(node.right, s + "1",hashMap);
}
当我打印 hashmap 时,我得到了这个输出: z : 000
我期望这样的输出:
z : 000
一个:001
b : 010
.
.
.
最佳答案
您仅为树中的叶节点将值添加到映射中。您需要将代码更改为以下内容:
public void createKey(Node root,String s,HashMap<String,String> hashMap){
if(root==null)
return;
hashMap.put(root.symbol, s);
createKey(root.left, s + "0",hashMap);
createKey(root.right, s + "1",hashMap);
}
关于java - 如何遍历二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56155650/