翻轉一棵二叉樹。
示例:
輸入:
? ? ?4
? ?/ ? \
? 2 ? ? 7
?/ \ ? / \
1 ? 3 6 ? 9
輸出:
? ? ?4
? ?/ ? \
? 7 ? ? 2
?/ \ ? / \
9 ? 6 3 ? 1
備注:
這個問題是受到 Max Howell 的 原問題 啟發的 :
谷歌:我們90%的工程師使用您編寫的軟件(Homebrew),但是您卻無法在面試時在白板上寫出翻轉二叉樹這道題,這太糟糕了。
思路:遞歸交換就完事了。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode invertTree(TreeNode root) {if(root==null){return null;}TreeNode left=invertTree(root.left);TreeNode right=invertTree(root.right);root.left=right;root.right=left;return root;}}
?