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); } } }