Binary Tree 1 - DFS Traversal
二叉树问题: 考虑整棵树在该问题上的结果 和左右儿子在该问题上结果的联系
DFS 总结:
Traverse |
Divide Conquer |
Recursion Algorithm |
Also Recursion |
Result in parameter |
Result in return value |
Top down |
Bottom up |
1. Binary Tree Preorder Traversal
Recurse(Traverse) - Template:
Recurse, version 2:Divide & Conquer
迭代_先序独特的方案,好:
迭代2_几种遍历通用的方案,不大好理解:
迭代3_几种遍历通用的方案,好理解些:
2. Binary Tree Inorder Traversal
递归:
完全同上,只是把res.push_back(root->val);放到left和right中间
迭代_几种遍历通用的方案,最重要:
另一种写法,更推荐:
3. Binary Tree Postorder Traversal - Hard
递归:
完全同上,只是把res.push_back(root->val);放到left和right最后
迭代_几种遍历通用的方案,更复杂一点,不很重要
Better solution!!!
pre-order traversal is root-left-right, and post order is left-right-root.
Modify the code for pre-order to make it root-right-left, and then reverse the output so that we can get left-right-root: