標籤:
Invert a binary tree.
4 / 2 7 / \ / 1 3 6 9
to
4 / 7 2 / \ / 9 6 3 1
Trivia:
This problem was inspired by this original tweet by Max Howell:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
代碼如下:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode invertTree(TreeNode root) {if (root == null || (root.left == null) && (root.right == null))return root;root=invertTreeLR(root,root.left, root.right);return root;}public TreeNode invertTreeLR(TreeNode root,TreeNode left, TreeNode right) { //left,right位臨時引用if (left == null && right != null) {left = right;right = null;left=invertTreeLR(left,left.left, left.right);} else if (left != null && right == null) {right = left;left = null;right=invertTreeLR(right,right.left, right.right);} else if (left == null && right == null){}else {TreeNode tmp = null;tmp = left;left = right;right = tmp;left=invertTreeLR(left,left.left, left.right);right=invertTreeLR(right,right.left, right.right);}root.left=left;root.right=right;return root;}}
運行結果:
(easy)LeetCode 226.Invert Binary Tree