#coding:utf-8
class TreeNode:
def __init__(self,val,left,right):
self.val=val
self.left=left
self.right=right
class Solution:
def reslove(self,root):
ans=[]
level=[root]
numlevel = 0
while level and root:
subans=[]
sublevel=[]
for i in range(len(level)):
if level[i].left is not None:
sublevel.append(level[i].left)
if level[i].right is not None:
sublevel.append(level[i].right)
subans.append(level[i].val)
level=sublevel
ans.append(subans)
numlevel=len(ans)
return numlevel
if __name__=="__main__":
#you write the root
java:
class TreeNode{
int val;
TreeNode left=null;
TreeNode right=null;
void TreeNode(int val){
this.val=val;
}
}
public class DepthBinaryTree{
public int depthsolution(TreeNode root){
List<List<Integer>> list=new ArrayList<List<Integer>>();
Queue<TreeNode> queue=new LinkedList<TreeNode>();
int numlevel=0;
if(root==null) return null;
queue.offer(root);
while(!queue.isEmpty){
List<Integer> subList=new ArrayList<Integer>();
int queuesize=queue.size();
for(int i=0;i<queuesize;i++){
if(queue.peer().left!=null){
queue.offer(queue.peer().left);
}
if(queue.peer().right!=null){
queue.offer(queue.peer().right);
}
sublist.add(queue.poll().val);
}
list.add(sublist);
}
numlevel=list.length;
return numlevel;
}
}