新聞中心
各種遍歷順序如下圖所示:

在承留等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站制作,承留網(wǎng)站建設(shè)費(fèi)用合理。
樹(shù)的深度
# class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def maxdepth(self, root): if root is None: return 0 return max(self.maxdepth(root.left), self.maxdepth(root.right))+1
深度優(yōu)先
深度優(yōu)先遍歷有三種方式:前序遍歷、中序遍歷和后序遍歷
所說(shuō)的前序、中序、后序,是指根節(jié)點(diǎn)的先后順序。
前序遍歷:根節(jié)點(diǎn) -> 左子樹(shù) -> 右子樹(shù)
# class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def preorder(self, root): if root is None: return '' print root.val if root.lef: self.preorder(root.left) if root.right: self.preorder(root.right)
中序遍歷:左子樹(shù) -> 根節(jié)點(diǎn) -> 右子樹(shù)
# class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def midorder(self, root): if root is None: return '' if root.lef: self.midorder(root.left) print root.val if root.right: self.midorder(root.right)
后序遍歷:左子樹(shù) -> 右子樹(shù) -> 根節(jié)點(diǎn)
# class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def endorder(self, root): if root is None: return '' if root.lef: self.endorder(root.left) if root.right: self.endorder(root.right) print root.val
廣度優(yōu)先
廣度優(yōu)先遍歷,即層次遍歷,優(yōu)先遍歷兄弟節(jié)點(diǎn)
層次遍歷:根節(jié)點(diǎn) -> 左節(jié)點(diǎn) -> 右節(jié)點(diǎn)
# class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def graorder(self, root): if root is None: return '' queue = [root] while queue: res = [] for item in queue: print item.val, if item.left: res.append(item.left) if item.right: res.apppend(item.right) queue = res
比較兩棵樹(shù)是否相同
# class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def issame(self, root1, root2): if root1 is None and root2 is None: return True elif root1 and root2: return root1.val==root2.val and issame(root1.left, root2.left) and issame(root1.right, root2.right) else: return False
眾多python培訓(xùn)視頻,盡在python學(xué)習(xí)網(wǎng),歡迎在線(xiàn)學(xué)習(xí)!
當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)Python教程:python中如何遍歷樹(shù)
文章源于:http://m.5511xx.com/article/dphhess.html


咨詢(xún)
建站咨詢(xún)
