react 前端框架如何驱动企业数字化转型与创新发展
1024
2022-10-26
微软100题第16题(输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印)
1python版本
'''Created on 2017-1-18@author: admin第16题(树):题目(微软):输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入8 / / 6 10/ / / /5 7 9 11输出8 6 10 5 7 9 11。'''from _overlapped import NULLclass BinaryTree: def __init__(self): self.root=self.Node(0) self.root.left=self.Node(1) self.root.right=self.Node(2) self.root.left.left=self.Node(3) self.root.left.right=self.Node(4) self.root.right.left=self.Node(5) self.root.right.right=self.Node(6) def levelWalk(self): nodes=[] nodes.append(self.root) while len(nodes)>0: print(nodes[0].value,end=",") if nodes[0].left!=NULL: nodes.append(nodes[0].left) if nodes[0].right!=NULL: nodes.append(nodes[0].right) nodes=nodes[1:] class Node: def __init__(self,value): self.value=value self.left=NULL self.right=NULL if __name__ == '__main__': tree=BinaryTree() tree.levelWalk()
2java版本
3scala版本
package msimport scala.collection.mutable.ListBuffer/** * 第16题(树): 题目(微软): 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入 8 / / 6 10 / / / / 5 7 9 11 输出8 6 10 5 7 9 11。 */class LeverTree{ var root:Node=null def this(default:Int=1){ this() root=Node(0) root.left=Node(1) root.right=Node(2) root.left.left=Node(3) root.left.right=Node(4) root.right.left=Node(5) root.right.right=Node(6) } def levelWalk(){ val listBuffer=ListBuffer[Node]() listBuffer+=root; while(listBuffer.size>0){ print(listBuffer(0).value+",") if(listBuffer(0).left!=null){ listBuffer+=listBuffer(0).left } if(listBuffer(0).right!=null){ listBuffer+=listBuffer(0).right } listBuffer.remove(0) } } case class Node(var value:Int,var left:Node=null,var right:Node=null)}object MicroSoft016 { def main(args: Array[String]): Unit = { val tree=new LeverTree(1) tree.levelWalk() } }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~