1. 程式人生 > 程式設計 >Python3 翻轉二叉樹的實現

Python3 翻轉二叉樹的實現

提出問題:翻轉一棵二叉樹。(除根結點以外)

原始二叉樹:

新二叉樹:

解題思路:遇見二叉樹先想到遞迴。從最下層的葉子結點開始置換左右子節點,一直置換到到最上層的根結點的左右節點為止。

程式碼如下( ̄▽ ̄):

# Definition for a binary tree node.
# class TreeNode:
#   def __init__(self,x):
#     self.val = x
#     self.left = None
#     self.right = None

class Solution:
  def invertTree(self,root: TreeNode) -> TreeNode:
    if root==None:
      return
    left = invertTree(root.left)
    right = invertTree(root.right)
    root.left = right
    root.right = left
    return root

時間與空間消耗:

問題來源:https://leetcode-cn.com/problems/invert-binary-tree/submissions/

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。