面国内某厂,享受了和Homebrew作者一样的待遇 .゚ヽ(。◕‿◕。)ノ゚.:。+゚


&和反转链表一样,翻转二叉树,可能是面试中最常考察的两个算法题… &

226. 翻转二叉树

难度: 简单



所给代码中已经定义好了一个二叉树

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func invertTree(root *TreeNode) *TreeNode {
if root == nil {
return root
}

//左右节点进行交换
// temp := root.Right
// root.Right = root.Left
// root.Left = temp

//可以直接更换,无需引入中间变量
root.Left,root.Right = root.Right,root.Left

//进行递归,反转子节点和右节点
root.Left = invertTree(root.Left)
root.Right = invertTree(root.Right)


return root

}

图示讲解



三道题套路解决递归问题

如链接失效,可点击