本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
一、题目描述
翻转一棵二叉树。
示例 1 :
二、思路分析
- 我们在做二叉树题目时候,第一想到的应该是用递归也就是深度优先搜索(
DFS)来解决。 - 仔细看下题目的
输入和输出,输出的左右子树的位置跟输入正好是相反的。 - 于是我们可以
递归的交换左右子树来完成这道题。
三、AC 代码
class Solution(object):
def invertTree(self, root):
if not root:
return None
root.left,root.right = root.right,root.left
self.invertTree(root.left)
self.invertTree(root.right)
return root
输出为:
四、总结
该题是一道利用递归也就是深度优先搜索(DFS)实现代码的题。从这道题体会到,理论很简单,思路需打开。在解决二叉树问题的时候可以优先想到用深度优先搜索(DFS)的方式进行解答。