韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > 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学习网,欢迎在线学习!

关注

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

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

大叔与妹妹免费观看电视剧高清| 泰国电影《初次深交流》| 舌头伸进去添的我爽高潮| 少女国产免费观看高清电视剧| 11BBB| 局长边摸边吃奶边做爰| 儿媳的报复(公媳)(一颗发财树.. 老赵在货车把儿媳妇送到了 | 欧美-区二区三区| 如何正确拔萝卜| 征服公务员韵母王强最新章节列表| 机械革命| 跳舞| 无情扌雷辶鬲| 快拨出天我是你母亲歌词监控| 日本护士裸体做爰视频| 爸爸吃女儿奶奶高情商回复| 台湾《洞门为君开》演员表| 青梅竹马是消防员第一部| YSL千人千色T9T9T9T9...| 小电影| 我的老师中韩双字| 6969影院免费观看电视剧大全 | 美国大片BGM大全播放| 一路向西在线播放| 厨房激战饥荒老奶奶能睡觉吗| 两阳夹一阴与其他强势形态的比较 | 麻豆传媒| 国产自拍| 网曝黑料猛料吃瓜网| 少女国产免费观看高清电视剧| 我在做饭他在下添好爽好硬| 女人做爰高潮全黄| 《魅魔之耻》1~4集免费看| 丰满的儿女小月的身世与背景介绍 | 《魅魔之耻》1~4集免费看| 一个人看的免费高清直播| 夹腿高潮后注意力不集中能恢复吗| 第1章饱满的乳峰喷奶水动漫| 腿张开我要添到你高潮H漫画软件| 《厨房韵母2》免费观看完整版| 麻豆