二叉树实战(四) - 二叉树最大深度问题
在 二叉树实战(二) - 二叉树的遍历方式 和 二叉树实战(三) - 二叉树层序遍历方式(广度优先遍历) 中,我们知道了如何对树进行广度优先遍历和深度优先遍历。
这里我们在之前的基础上再实现以下二叉树的最大深度的计算:
public int maxDepth() { return maxDepth(root); } private int maxDepth(Node x) { if (x == null) { return 0; } int max = 0; int maxL = 0; int maxR = 0; // 计算x结点左子树的最大深度 if (x.left != null) { maxL = maxDepth(x.left); } // 计算x结点右子树的最大深度 if (x.right != null) { maxR = maxDepth(x.right); } // 比较左子树最大深度和右子树最大深度,取较大值+1即可 max = maxL > maxR ? maxL + 1 : maxR + 1; return max; }

浙公网安备 33010602011771号