バイナリツリートラバーサル-1

非再帰的トラバーサル

先行順走査

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 }。
コードの表示

レイヤー前順

 

おすすめ

転載: www.cnblogs.com/GuoXinxin/p/11704809.html