国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python常见问题 > python中如何遍历树

python中如何遍历树

头像

爱喝马黛茶的安东尼

2019-11-05 13:33:373126浏览 · 0收藏 · 0评论

各种遍历顺序如下图所示:

6b1c633bdd48e8306ffb114c46c1f0a.png

树的深度 

# 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

深度优先

深度优先遍历有三种方式:前序遍历、中序遍历和后序遍历

所说的前序、中序、后序,是指根节点的先后顺序。

前序遍历:根节点 -> 左子树 -> 右子树

# 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)

中序遍历:左子树 -> 根节点 -> 右子树

# 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)

后序遍历:左子树 -> 右子树 -> 根节点

# 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

广度优先

广度优先遍历,即层次遍历,优先遍历兄弟节点

层次遍历:根节点 -> 左节点 -> 右节点

# 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

比较两棵树是否相同

# 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培训视频,尽在python学习网,欢迎在线学习!

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

女生的全身照曝光| 赠刘景文| 黑皮革之夜| 父女一起到达巅峰的小说| 双腿无力合拢红肿外翻男生原因| 在桌下含她的花蒂和舌头漫画| 《教授与女学生》伦理| 黑色蕾丝透视露胸旗袍连衣裙| 《欢迎来到!浪荡精灵之森》动漫..| 女人用嘴巴吸出精子会反流吗| 《蜜汁樱桃》笔趣阁全文免费阅读| 露全胸衣服| 泰国电影《初次深交流》| 欧美风高级情侣ID| 苍井空《办公室爱欲》| 小黄人免费观看电视剧的APP| 久久久久久精品免费免费导航| 少年阿兵全集| 舌绕指探洞深深下一句是什么?| 按摩师把我添高潮了6次| 国精产品一品二品国精HTC| 电影《满足2》完整版在线观看| 河莉秀| 人马杂配MV的视频在哪里看| 女性变态蕾丝连体开档内衣| 人OR猪OR狗的DNA播放| 欧美电影免费观看电视剧大全| 《喂奶人妻厨房HD》| 长江三峡游轮订票官网| 两对夫妻同房不交换会影响感情吗| 公翁挺进苏玥的小视频| 《晚上准备好纸巾》| 苍空电影完整版免费| 7777777亚洲和欧洲尺码表| 猛躁川大巴进入女人| 免费观看已满十八岁电视剧高清版| 儿子娶妈妈免费观看完整版 | 孝子提枪入母门| 男人女人免费观看40集电视剧| 少妇被大黑捧猛烈进出动态图| 《XL司令》第一季动漫免费播放