Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int maxDepth(TreeNode root) { if (root == null) { return 0; } int res = 0; int cur = 1; int next = 0; LinkedList<TreeNode> linkedList = new LinkedList<TreeNode>(); linkedList.add(root); while (!linkedList.isEmpty()) { TreeNode poll = linkedList.poll(); cur--; if (poll.left != null) { linkedList.add(poll.left); next++; } if (poll.right != null) { linkedList.add(poll.right); next++; } if (cur == 0) { cur = next; next = 0; res++; } } return res; } }