import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型
*/
public static int max_depth = 0;
public int maxDepth (TreeNode root) {
// write code here
search(root, 0);
return max_depth;
}
public void search(TreeNode root, int cur) {
if (root == null) {
max_depth = Math.max(cur, max_depth);
return;
}
search(root.left, cur + 1);
search(root.right, cur + 1);
}
}
本题考察的知识点为二叉树的遍历,所用编程语言为java.二叉树的遍历方法有四种
1.前序遍历,先遍历根节点,再遍历左节点,最后遍历右节点
2.中序遍历,先遍历左节点,再遍历根节点,最后遍历右节点
3.后序遍历,先遍历左节点,在便利右节点,最后遍历根节点
4.层序遍历,每层结点从左到右依次访问,常用队列实现遍历操作
关于这题,我们可以考虑使用前序遍历、中序遍历、后序遍历的任何一种进行实现,比较每条从根节点到叶子结点的路径长度,得到最长路径,关于这题我是使用的前序遍历。

京公网安备 11010502036488号