
按层细遍历二叉树
思路:利用队列的先进先出思想,将节点一次存入队列,递归弹出遍历直至队列为空,代码如下:
class node: #树节点 def __init__(self,data=None,left=None,right=None): self.data=data self.left=left self.right=right def level_order(tree): #按层次遍历 if tree==None: return q=[] q.append(tree) while q: tmp=q.pop(0) print tmp.data if tmp.left!=None: q.append(tmp.left) if tmp.right!=None: q.append(tmp.right)
求二叉树的深度
思路:通过递归,如果节点不为空,左右度较深的深度加一,代码如下:
def depth(tree): if tree==None: return 0 left,right=depth(tree.left),depth(tree.right) return max(left,right)+1




近期评论