【LeetCode】—— 翻转二叉树


翻转一棵二叉树。

示例:

输入:

     4
   /   \
  2     7
 / \   / \
1   3 6   9


输出:

     4
   /   \
  7     2
 / \   / \
9   6 3   1
 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode() {}
 8  *     TreeNode(int val) { this.val = val; }
 9  *     TreeNode(int val, TreeNode left, TreeNode right) {
10  *         this.val = val;
11  *         this.left = left;
12  *         this.right = right;
13  *     }
14  * }
15  */
16 class Solution {
17     public TreeNode invertTree(TreeNode root) {
18         // 递归算法
19         if (root == null){
20             return null;
21         }
22         TreeNode left = invertTree(root.left);
23         TreeNode right = invertTree(root.right);
24         root.left = right;
25         root.right = left;
26         return root;
27     }
28 }

解题关键:

递归算法