Day 3 面试算法练习:二叉树层序遍历
核心思路利用队列根左右的顺序循环出队入队时间复杂度o(n)from collections import deque class TreeNode: def __init__(self, val0, leftNone, rightNone): self.val val self.left left self.right right def level_order(root): if root is None: return [] queue deque([root]) res [] while queue: cur queue.popleft() res.append(cur.val) if cur.left: queue.append(cur.left) if cur.right: queue.append(cur.right) return res # 按层输出需要加一个for len(queue) def level_order(root): if root is None: return [] queue deque([root]) res [] while queue: size len(queue) level [] for _ in range(size): node queue.popleft() level.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) res.append(level) return res if __name__ __main__: root TreeNode(1) root.left TreeNode(2, TreeNode(4), TreeNode(5)) root.right TreeNode(3,TreeNode(6), TreeNode(7)) print(level_order(root))
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2410609.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!