题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
思路:要求树的深度,可以用层次遍历二叉树,每遍历完一层,则加1
list A为当前层的结点,遍历A中的每个节点,然后用temp一一保存当前每个节点可能有的左结点和右结点。
代码如下:
class TreeNode():
def __init__(self,x):
self.val = x
self.left = None
self.right = None
def function(root):
if not root:
return 0
A = []
depth = 0
A.append(root)
while A:
temp = []
for node in A:
if node.left:
temp.append(node.left)
if node.right:
temp.append(node.right)
A = temp
depth += 1
return depth