1关键是要不断比较,计算当前节点的最大直径,并返回左右子树的最大值,
2 迭代不难,递归的关键是要学会对深度的表示,递归时每次记录深度,可以观察出先遍历右子树时,当前的最大深度总是出现在最右边,所以可以记录到过的最大深度,每当第一次到达最大深度时,就记录值,而这里恰恰可以用res数组的长度来记录最大深度,
中序遍历题目
1 利用一个全局变量记录上一个的值,与当前的值进行比较,
2 快手面试题,二叉树节点本质就是一个双向链表的节点,所以直接连接即可,
任意遍历题目
1 这道题用递归实现的时候务必要记录递归的深度才行,二叉树的层序遍历用任意一种遍历方式都可以实现,根本原因是由recursion(root.left) recursion(root.right) 的先后顺序决定的,二叉树的右视图递归实现时就需要先遍历右子树,再遍历左子树,