/** * 题目: * 操作给定的二叉树,将其变换为源二叉树的镜像。 * 解题思路: * 先前序遍历这棵树的每个节点,如果遍历到的节点有子节点, * 就交换它的两个子节点。当交换完所有非叶节点的左、右节点 * 之后,就得到了树的镜像。 */ public class P157_MirrorOfBinaryTree { public void MirrorOfBinaryTree(TreeNode root) { if (root == null) { return; } TreeNode temp = root.left; root.left = root.right; root.right = temp; MirrorOfBinaryTree(root.left); MirrorOfBinaryTree(root.right); } public static void main(String[] args) { TreeNode node1 = new TreeNode(8); TreeNode node2 = new TreeNode(6); node1.left = node2; TreeNode node3 = new TreeNode(10); node1.right = node3; TreeNode node4 = new TreeNode(5); node2.left = node4; TreeNode node5 = new TreeNode(7); node2.right = node5; TreeNode node6 = new TreeNode(9); node3.left = node6; TreeNode node7 = new TreeNode(11); node3.right = node7; P157_MirrorOfBinaryTree test = new P157_MirrorOfBinaryTree(); test.MirrorOfBinaryTree(node1); } }
剑指offer:对称的二叉树(java)
最新推荐文章于 2021-11-24 00:37:38 发布