老三样 1.输入输出值 : Treenode / 高度差 2.终止条件:node为空时return 3.运行逻辑
因为是跟高度有关的 所以要左右中的后序来处理
通过递归实现左右,对于中节点也是更新数值的方式 只要当左右树的高度大于1 直接就返回-1,
在每一层向上一层传递时也会传递这个-1 最后就会是false;
但是如果左右树的高度大于1 就返回1 + 当前的高度值
记录路径的时候首先加入头节点,之后把这个节点加入路径中,之后向左右树进行分散,关键点是当一个节点进行回溯时,需要立刻把之前的路径path pop出去,不能放在一起去pop不然路径非常容易乱。
左右树递归时 把一个节点的无后续分支的左节点值记录下来 这个值会变成上一层的left或者right值
最后全部求和。
左右树遍历 中节点 = 左右 + 1