算法|104 二叉树的最大深度(Java)

【算法|104 二叉树的最大深度(Java)】两种思路,见注释

/** * Definition for a binary tree node. * public class TreeNode { *int val; *TreeNode left; *TreeNode right; *TreeNode() {} *TreeNode(int val) { this.val = val; } *TreeNode(int val, TreeNode left, TreeNode right) { *this.val = val; *this.left = left; *this.right = right; *} * } */ //遍历二叉树计算答案的思路。 class Solution { // 记录最大深度 int res = 0; // 记录遍历到的节点的深度 int depth = 0; // 主函数 int maxDepth(TreeNode root) { traverse(root); return res; }// 二叉树遍历框架 void traverse(TreeNode root) { if (root == null) { // 到达叶子节点,更新最大深度 res = Math.max(res, depth); return; } // 前序位置 depth++; traverse(root.left); traverse(root.right); // 后序位置 depth--; }} // 分解问题计算答案的思路 // class Solution { //public int maxDepth(TreeNode root) { //if(root ==null){ //return 0; //} //int leftDepth = maxDepth(root.left); //int rightDepth = maxDepth(root.right); //int res = Math.max(leftDepth,rightDepth) + 1; //return res; //} // }

    推荐阅读