226. 翻轉(zhuǎn)二叉樹(shù)(Python)

題目

難度:★☆☆☆☆
類(lèi)型:二叉樹(shù)

翻轉(zhuǎn)一棵二叉樹(shù)。

示例

輸入:

     4
   /   \
  2     7
 / \   / \
1   3 6   9

輸出:

     4
   /   \
  7     2
 / \   / \
9   6 3   1

解答

樹(shù)的問(wèn)題我們一般通過(guò)遞歸實(shí)現(xiàn)。翻轉(zhuǎn)一棵樹(shù),需要進(jìn)行以下步驟:

  1. 如果樹(shù)為空,則直接返回這棵樹(shù);

  2. 交換根節(jié)點(diǎn)的左右子樹(shù);

  3. 對(duì)樹(shù)的左右子樹(shù)分別進(jìn)行翻轉(zhuǎn),通過(guò)遞歸調(diào)用本函數(shù)實(shí)現(xiàn)。

class Solution(object):
    def invertTree(self, root):
        """
        :type root: TreeNode
        :rtype: TreeNode
        """
        if root:                                            # 如果輸入不為空樹(shù)
            root.left, root.right = root.right, root.left   # 左右子樹(shù)互換
            self.invertTree(root.left)                      # 翻轉(zhuǎn)左子樹(shù)
            self.invertTree(root.right)                     # 翻轉(zhuǎn)右子樹(shù)
        return root                                         # 返回翻轉(zhuǎn)結(jié)束的二叉樹(shù)的根結(jié)點(diǎn)

如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容