首页 > 其他 > 详细

二叉树的遍历-1

时间:2019-10-19 19:37:08      阅读:81      评论:0      收藏:0      [点我收藏+]

非递归遍历

前序遍历

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

 

中序遍历

后序遍历

层序遍历

递归遍历

递归遍历的规律:无论何时push_back的都是当前的跟结点,遇到左右结点,都是继续递归遍历。

前序遍历

技术分享图片
 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

中序遍历

技术分享图片
 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

后序遍历

技术分享图片
 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

层序遍历

 

二叉树的遍历-1

原文:https://www.cnblogs.com/GuoXinxin/p/11704809.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!