题目描述
翻转一棵二叉树。
思路
翻转二叉树,子问题是交换左右孩子。
于是解法就是递归地交换每个节点的左右孩子。
代码
class Solution {
public TreeNode invertTree(TreeNode root) {
doInvert(root);
return root;
}
private void doInvert(TreeNode root) {
if (root == null) return;
// 交换左右孩子
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
// 递归地交换
doInvert(root.left);
doInvert(root.right);
}
}