Binary tree traversal -1

Non-recursive traversal

Preorder traversal

https://leetcode-cn.com/problems/binary-tree-preorder-traversal/

 

Preorder

Postorder

Layer preorder

Recursive traversal

Recursive traversal of the law: whenever push_back are current with nodes, nodes around encountered, are recursively traverse.

Preorder traversal

 1 class Solution {
 2 public:
 3     vector<int> preorderTraversal(TreeNode* root) {
 4         vector<int> res;
 5         preorderTraversalCore( root, res); 
 6         return res;
 7     }
 8     
 9     void preorderTraversalCore(TreeNode* root,vector<int>& res){
10         if(root==nullptr)
11             return;
12         res.push_back(root->val);
13         preorderTraversalCore( root->left, res); 
14         preorderTraversalCore( root->right, res); 
15         return;
16     }
17 };
preOrder

Preorder

 1 class Solution {
 2 public:
 3     vector<int> inorderTraversal(TreeNode* root) {
 4         vector<int> res;
 5         inorderTraversalCore( root, res); 
 6         return res;
 7     }
 8     
 9     void inorderTraversalCore(TreeNode* root,vector<int>& res){
10         if(root==nullptr)
11             return;
12         inorderTraversalCore( root->left, res); 
13         res.push_back(root->val);
14         inorderTraversalCore( root->right, res); 
15         return;
16     }   
17     
18 };
inorder

Postorder

 1 class Solution {
 2 public:
 3     vector<int> postorderTraversal(TreeNode* root) {
 4         vector<int> res;
 5         postorderTraversalCore( root, res); 
 6         return res;
 7     }
 8     
 9     void postorderTraversalCore(TreeNode* root,vector<int>& res){
10         if(root==nullptr)
11             return;
12         postorderTraversalCore( root->left, res); 
13         postorderTraversalCore( root->right, res); 
14         res.push_back(root->val);
15         return;
16     }
17     
18 };
View Code

Layer preorder

 

Guess you like

Origin www.cnblogs.com/GuoXinxin/p/11704809.html