chapter-four/0200~0299/0226.Invert-Binary-Tree

226. Invert Binary Tree

题目

Invert a binary tree.

Example:

Input:


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

Output:


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

Trivia:

This problem was inspired by this original tweet by Max Howell:

Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so f*** off.

题目大意

"经典"的反转二叉树的问题。

解题思路

还是用递归来解决,先递归调用反转根节点的左孩子,然后递归调用反转根节点的右孩子,然后左右交换根节点的左孩子和右孩子。

代码

package leetcode /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func invertTree(root *TreeNode) *TreeNode { if root == nil { return nil } invertTree(root.Left) invertTree(root.Right) root.Left, root.Right = root.Right, root.Left return root }