python實現101對稱二叉樹

2021-10-06 10:49:05 字數 1118 閱讀 9831

題目:給定乙個二叉樹,檢查其是否為映象對稱!

思路:1.要設定乙個映象樹,設原樹為tree,映象樹為new_tree。

2.tree.left.val == new_tree.right.val and tree.right.val == new_tree.left.val,簡單來講就是左子樹的左孩子 = 右子樹的右孩子,左子樹的右孩子 = 右子樹的左孩子!

code:

class

solution

:def

issymmetric

(self, root: treenode)

->

bool

:if root ==

none

:return

true

defnew_trees

(root_left, root_right)

:#以下三個if為遞迴終止的三個條件

if root_left ==

none

and root_right:

return

true

if root_left ==

none

or root_right ==

none

:return

false

if root_left.val != root_right.val:

return

false

return new_tree(root_left.left, root_right.right)

and new_tree(root_left.right, root_right.left)

return new_tree(root.left, root.right)

#使用遞迴函式,分別比較左右節點!

時間複雜度:o(n),因為我們遍歷整個輸入樹一次,所以總的執行時間為 o(n),其中 n 是樹中結點的總數。

空間複雜度:o(n),遞迴呼叫的次數受樹的高度限制。在最糟糕情況下,樹是線性的,其高度為 o(n),因此,在最糟糕的情況下,由棧上的遞迴呼叫造成的空間複雜度為 o(n)。

101 對稱二叉樹 python

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 34 43但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 33 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分 這道題雖然是判斷樹是否對稱,即它是否滿足...

101 對稱二叉樹(Python)

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 方法一 左子樹前序遍歷,右子樹後續遍歷,若相反則是對稱 class solution def issymmetric self,root...

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。思路 遞迴就用dfs,迭代是b...