Invert a binary tree.算法
4 / \ 2 7 / \ / \ 1 3 6 9
tospa
4 / \ 7 2 / \ / \ 9 6 3 1
将一棵二叉树进行翻转。.net
对每个结点,将它的左右子树进行交换,再对它的左右子结点进行一样的操做。code
树结点类get
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }
算法实现类io
public class Solution { public TreeNode invertTree(TreeNode root) { if (root != null) { invertTreeNode(root); } return root; } public void invertTreeNode(TreeNode root) { if (root != null) { TreeNode tmp = root.left; root.left = root.right; root.right = tmp; invertTree(root.left); invertTree(root.right); } } }