繼續(xù)刷題,判斷是否鏡像對稱二叉樹。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)甘井子,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
鏡像對稱二叉樹,顧名思義,以根節(jié)點(diǎn)為軸,左右節(jié)點(diǎn)和節(jié)點(diǎn)內(nèi)容互為鏡像;如下圖所示。這里要避免和完全二叉樹混淆。
這個我還是考慮了一段時間,遞歸和迭代都可以實現(xiàn)。遞歸的,如果一個節(jié)點(diǎn)值作為輸入很難實現(xiàn),所以新建一個新方法recurse,輸入左右兩個節(jié)點(diǎn),返回bool值。思路很簡單,如果輸入兩個節(jié)點(diǎn)都是空,可能是單個跟節(jié)點(diǎn),返回True;如果一個有,另一個為空,返回False;如果左右兩個節(jié)點(diǎn),如果節(jié)點(diǎn)值相等,這里遞歸,把這兩個節(jié)點(diǎn)的子節(jié)點(diǎn)左右對比,并按照and 關(guān)聯(lián),如果有一個下層對比False,則所有都是False。如果都為True,則層層返回True。
遞歸的核心點(diǎn),就是定義傳入下一次遞歸輸入,和如何處理下一次遞歸的返回。
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def isSymmetric(self, root: TreeNode) -> bool: if root== None: return True else: return recurse(root.left,root.right) def recurse(leftNode,rightNode): if leftNode == None and rightNode == None: return True elif leftNode != None and rightNode != None: if leftNode.val ==rightNode.val: return recurse(leftNode.left,rightNode.right) and recurse(leftNode.right,rightNode.left) else: return False else: return False
文章標(biāo)題:刷題系列-Python判斷是否鏡像對稱二叉樹
標(biāo)題路徑:http://chinadenli.net/article0/pddcoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站設(shè)計公司、定制開發(fā)、手機(jī)網(wǎng)站建設(shè)、企業(yè)建站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)