LeetCode 104 二叉树的最大深度

it2024-04-19  2

题目描述:

方法一(递归): 代码

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int maxDepth(TreeNode root) { if(root == null){ return 0; } TreeNode left = root.left; TreeNode right = root.right; return Math.max(maxDepth(left),maxDepth(right)) + 1; } }

结果:

方法二:

分析:内层while循环利用层次遍历得到每一层节点(因为不知道哪个分支深,都要遍历),外层while循环用来记录层数。

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int maxDepth(TreeNode root) { if(root == null){ return 0; } Queue<TreeNode> q1 = new LinkedList<TreeNode>(); q1.offer(root); int count = 0; while(!q1.isEmpty()){ int size = q1.size(); while(size > 0){ TreeNode node = q1.poll(); TreeNode left = node.left; TreeNode right = node.right; if(left != null){ q1.offer(left); } if(right != null){ q1.offer(right); } size--; } count++; } return count; } }

结果;

最新回复(0)