题目来源:剑指offer
01 题目描述
输入一颗二叉树,求该二叉树的深度。从根节点到页子节点形成一条路径。最长的路径时二叉树的深度。
如上图,改树最长的路径为1,2,5,7 深度为4。
02 解题1
边深度遍历边把长度加1,遍历完左右子树,将最大的作为当前节点所对应的深度。
03 代码
public int binaryTreeDepth(BinaryTreeNode treeNode) { if (treeNode == null) { return 0; } return binaryTreeDepth(treeNode, 0);}public int binaryTreeDepth(BinaryTreeNode treeNode, int depth) { if (treeNode == null) { return depth; } int leftDepth = binaryTreeDepth(treeNode.left, depth + 1); int rightDepth = binaryTreeDepth(treeNode.right, depth + 1); return leftDepth > rightDepth ? leftDepth : rightDepth;}
牛客网代码验证地址 https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b?tpId=13&tqId=11191&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking