zoukankan      html  css  js  c++  java
  • 按之字打印二叉树


    1. class TreeNode:
    2.    def __init__(self, x):
    3.        self.val = x
    4.        self.left = None
    5.        self.right = None
    6. class Solution:
    7.    # 转换思路,存储的时候一直从左向右存储,打印的时候根据不同的层一次打印
    8.    def zigzagLevelOrder(self, root):
    9.        if not root:
    10.            return []
    11.        levels, result, leftToRight = [root], [], True
    12.        while levels:
    13.            curValues, nextLevel = [], []#将左子树和右子树放在数组中,单独看
    14.            for node in levels:
    15.                curValues.append(node.val)
    16.                if node.left:
    17.                    nextLevel.append(node.left)
    18.                if node.right:
    19.                    nextLevel.append(node.right)
    20.            if not leftToRight:
    21.                curValues.reverse()
    22.            if curValues:
    23.                result.append(curValues)
    24.            levels = nextLevel
    25.            leftToRight = not leftToRight
    26.        return result
    27. pNode1 = TreeNode(8)
    28. pNode2 = TreeNode(6)
    29. pNode3 = TreeNode(10)
    30. pNode4 = TreeNode(5)
    31. pNode5 = TreeNode(7)
    32. pNode6 = TreeNode(9)
    33. pNode7 = TreeNode(11)
    34. pNode1.left = pNode2
    35. pNode1.right = pNode3
    36. pNode2.left = pNode4
    37. pNode2.right = pNode5
    38. pNode3.left = pNode6
    39. pNode3.right = pNode7
    40. S = Solution()
    41. aList = S.zigzagLevelOrder(pNode1)
    42. print(aList)

    附件列表

    • 相关阅读:
      xmapp开启https
      docker常用命令
      kubernetes常用命令
      MySQL text类型的最大长度
      用jQuery的attr()设置option默认选中无效的解决 attr设置属性失效
      squid3认证配置
      Go & SQLite on Windows
      orchestrator-Raft集群部署
      协程并发框架gevent及其用法
      syslog日志系统
    • 原文地址:https://www.cnblogs.com/zzxx-myblog/p/6595090.html
    Copyright © 2011-2022 走看看