669.
先在矫正root是在区间内的。矫正方法:不在区间里就root = right/left,用while。
矫正好了之后不要直接return。递归就在于处理好后还要处理左后子节点
确定了之后在单层递归逻辑里,left = traverse(left),right = traverse(right)就行。
这道题不是只找一个节点或者一条path找到了就return,所以矫正之后不能直接return。正经的终止条件只有!root因为要遍历整棵树。
和删除节点不一样,删除节点属于找到目标节点了之后删除,处理,然后直接return,返回上一层直接接上。这个是看到一个节点处理一个节点。
108.
取中值构造vec就好。parameter和return type都可以用main function的话就不用单独写一个traverse了
538.
右中左
这道题不需要返回值因为不需要记录左边是什么右边是什么,然后再两个东西相加什么的。这道题把握右中左的原则,用一个sum一路记录累加的和,然后赋值就可以。
总结