LeetCode——翻转二叉树
题目描述:
翻转一棵二叉树。
示例:
输入:
输出:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
我们用递归的方法来做这道题。
我们对一个根节点的左右子树进行翻转操作,即是交换左右子树;对左子树和右子树递归调用翻转操作即可。
最后,递归结束的条件是遇到叶子结点,或者空节点。
python代码:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if root is None or (root.left is None and root.right is None):
return root
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root