【牛客题霸题解】二叉树的之字形层序遍历(待更新)

二叉树的之字形层序遍历

http://www.nowcoder.com/practice/47e1687126fa461e8a3aff8632aa5559

/**
 * struct TreeNode {
 *    int val;
 *    struct TreeNode *left;
 *    struct TreeNode *right;
 * };
 */
struct node{
    int index;
    TreeNode *root;
};
#include<queue>
class Solution {
public:
    /**
     * @param root TreeNode类 
     * @return int整型vector<vector<>>
     */
     vector<vector<int> > zigzagLevelOrder(TreeNode* root) { 
        // write code here
        vector<vector<int> > t;
        if(root==NULL)return t;
        queue <node>  Q;
        vector<node>  save;
        Q.push(node{0,root});
        while(!Q.empty())
        {
            node top=Q.front();
            Q.pop();
            save.push_back(top);
            if(top.root->left != NULL){Q.push(node{top.index+1,top.root->left});}
            if(top.root->right != NULL){Q.push(node{top.index+1,top.root->right});}
        }
       int num = save.size();
      // cout<<num;
       vector<vector<int> > ans(save[num-1].index+1);
       for(int i = 0 ; i < num ; i++)
       {
           ans[save[i].index].push_back(save[i].root->val);
       }
         for(int i = 1 ; i < save[num-1].index+1 ; i+=2)
         {
             reverse(ans[i].begin(),ans[i].end());
         }
        return ans;
    }
};
牛客题霸题解 文章被收录于专栏

QAQ

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
2022-12-22 18:27
天津大学_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-24 07:19
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议