本文共 831 字,大约阅读时间需要 2 分钟。
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
昨天看到《剑指offer》上的思路,的确非常简单,巧妙。不断交换每个节点的左右子树,交换完毕,二叉树镜像也就调整完毕了。同时,要考虑程序的健壮性,空指针,特殊值怎么处理要谨慎考虑。
/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public void Mirror(TreeNode root) { if(root==null){ return ; } exchangeSubtree(root); if(root.left!=null){ Mirror(root.left); } if(root.right!=null){ Mirror(root.right); } } public static void exchangeSubtree(TreeNode root){ TreeNode temp = root.left; root.left = root.right; root.right = temp; }}
转载地址:http://rfdii.baihongyu.com/