mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-08-01 00:21:48 +08:00
添加内容
This commit is contained in:
76
website/content/ChapterFour/0226.Invert-Binary-Tree.md
Normal file
76
website/content/ChapterFour/0226.Invert-Binary-Tree.md
Normal file
@ -0,0 +1,76 @@
|
||||
# [226. Invert Binary Tree](https://leetcode.com/problems/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.
|
||||
|
||||
|
||||
## 题目大意
|
||||
|
||||
"经典"的反转二叉树的问题。
|
||||
|
||||
|
||||
## 解题思路
|
||||
|
||||
还是用递归来解决,先递归调用反转根节点的左孩子,然后递归调用反转根节点的右孩子,然后左右交换根节点的左孩子和右孩子。
|
||||
|
||||
|
||||
|
||||
|
||||
## 代码
|
||||
|
||||
```go
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
```
|
Reference in New Issue
Block a user