劍指Offer 對稱的二叉樹

2021-10-06 02:44:43 字數 1002 閱讀 5463

題目描述:請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

解體思路:

遞迴查詢判斷

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

issymmetrical

(self, proot)

:# write code here

#空樹為對稱二叉樹

if proot ==

none

:return

true

return self.check(proot.left, proot.right)

#定義回歸,判斷左右子樹知否對稱

defcheck

(self,l,r)

:#如果左右子樹均為空,則說明對稱

if l ==

none

and r ==

none

:return

true

#如果左右子樹有不為空,則說明不對稱

if l==

none

or r ==

none

:return

false

#還有一種情況就是左右子樹均不為空,則判斷值是否相同

if l.val == r.val:

return self.check(l.left, r.right)

and self.check(l.right, r.left)

#其他情況返回false

return

false

劍指Offer 二叉樹 對稱的二叉樹

含有兩道題,都從樹的遞迴入手 請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。解題思路 映象翻 只需要遍歷二叉樹,每次訪問乙個結點時,交換其左右子樹。實現 definition for a binary tree node.class treenode def init self,x self....

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 複製一顆二叉樹,在該二叉樹的基礎上求得二叉樹的映象,同時遍歷兩顆二叉樹,判斷每乙個節點是否相同。public class solution private treenode copy ...

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。遞迴 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class ...