lc104最大深度问题
-
递归,后序遍历
depth = max(leftDepth,rightDepth)+1
public int maxDepth(TreeNode root) { if(root==null){ return 0; } int leftDepth = maxDepth(root.left); int rightDepth = maxDepth(root.right); return Math.max(leftDepth,rightDepth)+1; }
-
层序遍历,每层+1
public int maxDepth(TreeNode root) { if(root==null){ return 0; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); int res=0; while(!queue.isEmpty()){ int size = queue.size(); while(size>0){ TreeNode t = queue.poll(); if(t.right!=null){ queue.offer(t.right); } if(t.left!=null){ queue.offer(t.left); } size--; } res++; } return res; }