leetcode.104二叉树的最大深度
-
题目:给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
-
思路:定义结果变量res和深度变量depth;定义遍历方法 traverse(TreeNode root);
-
traverse(TreeNode root)方法:
-
-
如果节点为null,则将res和depth的最大值赋值给res;
-
在遍历节点前序位置 depth++;
-
遍历节点的左右节点;
-
在遍历节点前序位置 depth--;
-
-
主方法int maxDepth(TreeNode root):遍历根节点;返回结果变量res。
class Solution { //定义结果变量res int res = 0; //定义深度变量depth int depth =0; public int maxDepth(TreeNode root) { traverse(root); return res; } public void traverse(TreeNode root){ //如果root ==null 则 结果取 结果和深度的最大值 if(root==null){ res = Math.max(res,depth); return; } //前序位置 深度+1; depth++; traverse(root.left); traverse(root.right); //后序位置 深度-1; depth--; } }