public static int mirror(BinaryNode<Integer> root)
{
if(root==null)
{
return 0;
}
else
{
root.setRight(root.getLeft());
mirror(root.getLeft());
mirror(root.getRight());
}
return 0;
}
输入4261357(级别顺序遍历)
4
/ \
2 6
/ \ / \
1 3 5 7
输出4221111(级别顺序遍历)
4
/ \
2 2
/ \ / \
1 1 1 1
但我想从左到右镜像
4
/ \
2 2
/ \ / \
1 3 3 1
如何修复此代码?
答案 0 :(得分:0)
你需要交换这两个部分:
temp = root.getLeft();
root.setLeft(root.getRight());
root.setRight(temp);
mirror(root.getLeft());
mirror(root.getRight());