LeetCode每日一题: 翻转二叉树(No.226)

299 阅读1分钟

题目:翻转二叉树


 计算给定二叉树的所有左叶子之和。

示例:


输入:

     4
   /   \
  2     7
 / \   / \
1   3 6   9
    
输出:
     4
   /   \
  7     2
 / \   / \
9   6 3   1

思考:


这道题采用递归。
将root的左节点与右节点交换,再递归交换左节点的左节点和右节点,右节点的左节点和右节点。

实现:


class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return null;
        }
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
        invertTree(root.left);
        invertTree(root.right);
        return root;
    }
}