非再帰的トラバーサル
先行順走査
https://leetcode-cn.com/problems/binary-tree-preorder-traversal/
予約限定!
後順
レイヤー前順
再帰トラバーサル
法の再帰的トラバース:ノードと現在の一backあるたびに、周りに遭遇したノード、再帰的にトラバースしています。
先行順走査
1 クラスソリューション{ 2 公共: 3 ベクトル< INT > preorderTraversal(ツリーノード* ルート){ 4 ベクトル< INT > RES。 5 preorderTraversalCore(根、RES)。 6 リターンのres; 7 } 8 9 ボイド preorderTraversalCore(ツリーノード*根、ベクトル< INT >&RES){ 10 であれば(ルート== nullptr) 11 リターン。 12 res.push_back(root-> ヴァル) 13 preorderTraversalCore(root-> 左、RES)。 14 preorderTraversalCore(root-> 右、RES)。 15 リターン; 16 } 17 }。
予約限定!
1 クラスソリューション{ 2 公共: 3 ベクトル< INT > inorderTraversal(ツリーノード* ルート){ 4 ベクトル< INT > RES。 5 inorderTraversalCore(根、RES)。 6 リターンのres; 7 } 8 9 ボイド inorderTraversalCore(ツリーノード*根、ベクトル< INT >&RES){ 10 であれば(ルート== nullptr) 11 リターン。 12 inorderTraversalCore(root-> 左、RES)。 13 res.push_back(root-> val)で、 14 inorderTraversalCore(root-> 右、RES)。 15 リターン; 16 } 17 18 }。
後順
1 クラスソリューション{ 2 公共: 3 ベクトル< INT > postorderTraversal(ツリーノード* ルート){ 4 ベクトル< INT > RES。 5 postorderTraversalCore(根、RES)。 6 リターンのres; 7 } 8 9 ボイド postorderTraversalCore(ツリーノード*根、ベクトル< INT >&RES){ 10 であれば(ルート== nullptr) 11 リターン。 12 postorderTraversalCore(root-> 左、RES)。 13 postorderTraversalCore(root-> 右、RES)。 14 res.push_back(root-> ヴァル) 15 リターン; 16 } 17 18 }。
レイヤー前順