classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result
classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result
classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result
classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result
classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result
classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result
classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result
classBnode: '''二叉树的节点''' def__init__(self, root, left=None, right=None): self.root = root self.left = left self.right = right
defgetBTreewithBFS(l): '''给定二叉树的层序遍历, 重建该二叉树''' if l[0]: root = Bnode(l[0]) nodes = [root] id = 1 while nodes and id < len(l): node = nodes[0] # 依次为每个节点分配子节点 node.left = Bnode(l[id]) if l[id] elseNone nodes.append(node.left) node.right = Bnode(l[id+1]) if id<len(l)-1and l[id+1] elseNone nodes.append(node.right) id+=2# 每次取出两个节点 nodes.pop(0) return root else: returnNone
defPrintBTree(root): '''打印二叉树, 从顶到底''' tmp = [] result = [] if root == None: return result tmp.append(root) while tmp: newNode = tmp.pop(0) if newNode == None: result.append(None) else: result.append(newNode.root) if newNode.left or newNode.right: tmp.append(newNode.left) tmp.append(newNode.right) return result