Leetcode226-翻转二叉树|刷题打卡

211 阅读1分钟

本文正在参与掘金团队号上线活动,点击 查看大厂春招职位

一、题目描述

翻转一棵二叉树。

示例 1 :

image.png

image.png

二、思路分析

  1. 我们在做二叉树题目时候,第一想到的应该是用递归也就是深度优先搜索DFS)来解决。
  2. 仔细看下题目的输入输出,输出的左右子树的位置跟输入正好是相反的。
  3. 于是我们可以递归交换左右子树来完成这道题。

三、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

输出为:

image.png

四、总结

该题是一道利用递归也就是深度优先搜索(DFS)实现代码的题。从这道题体会到,理论很简单,思路需打开。在解决二叉树问题的时候可以优先想到用深度优先搜索(DFS)的方式进行解答。