leetcode104 二叉树的最大深度

183 阅读1分钟

防止自己看不懂自己自己写的代码思路,所以来记录一下自己写代码的思路。 有三个方法

1.递归

image.png

2.DFS

用2个stack存节点和深度,每次取出stack中的节点和深度,再把stack顶部节点的左右子儿子存进去,这样就可以访问所有节点,用一个变量mxResult取节点深度的最大值就可以了。
对了,存节点的stack写法是:stack<TreeNode> stackNode*;
还需要stackDepth存深度,mxResult存深度最大值,nowNode,nowDepth代表现在节点和深度 image.png

3.BFS

这里最大的变化就是把stack换成了queue,其他变化不大 image.png