剑指offer-翻转二叉树

136 阅读1分钟

翻转二叉树leetcode226

翻转一棵二叉树。 输入描述:

          原二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	 翻转二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5

思路

class Solution(object):
    def invertTree(self, root):
        """
    :type root: TreeNode
    :rtype: TreeNode
    """
        if not root:
            return
        root.left, root.right = root.right, root.left
        self.invertTree(root.left)
        self.invertTree(root.right)
        return root
"""
只需要把根节点的子树的左孩子设置为原先的右孩子,右孩子设置为原先的左孩子即可完成二叉树的翻转
因此,我们可以利用递归的方式自底向上完成翻转
"""