问题
翻转一棵二叉树。 示例: 输入:
graph TD A[4] --> B[2] A --> C[7] B --> D[1] B --> E[3] C --> F[6] C --> G[9]
输出:
graph TD A[4] --> B[7] A --> C[2] B --> D[9] B --> E[6] C --> F[3] C --> G[1]
解法
很简单的递归调用即可。
代码
java
/**
* 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 root;
}
invert(root);
return root;
}
private void invert(TreeNode root) {
if (root ==null) {
return;
}
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
invert(root.left);
invert(root.right);
}
}逸闻
这道题是HomeBrew的作者 Max Howell 的一条推特中的题。
