LeetCode-103-二叉树的锯齿形层序遍历-创新互联

在这里插入图片描述

创新互联主营海湖新网站建设的网络公司,主营网站建设方案,App定制开发,海湖新h5重庆小程序开发搭建,海湖新网站营销推广欢迎海湖新等地区企业咨询1、BFS

我们可以利用队列来层序遍历整棵二叉树。为了实现利用队列遍历二叉树,我们在每次循环的开始是统计当前队列中的个数而后进行循环。在每次的循环当中,我们将当前节点的左右子节点加入队列中并在下一次循环中进行遍历。其中,为了实现锯齿形的层序遍历,我们需要判断当前深度是否为2的倍数,若为2的倍数则说明当前层的遍历需要进行逆序操作,我们将逆序操作后的数组加入最终结果当中。

class Solution {public:
    vector>result;
    queueq;

    vector>zigzagLevelOrder(TreeNode *root) {int depth = 1;
        if (!root) return {};
        q.push(root);
        while (!q.empty()) {int currentLevelSize = q.size();
            vectortemp_res;
            for (int i = 0; i< currentLevelSize; ++i) {TreeNode *cur = q.front();
                q.pop();
                temp_res.emplace_back(cur->val);
                if (cur->left) q.push(cur->left);
                if (cur->right) q.push(cur->right);
            }
            if (depth % 2 == 0) reverse(temp_res.begin(), temp_res.end());
            ++depth;
            result.emplace_back(temp_res);
        }
        return result;
    }
};

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:LeetCode-103-二叉树的锯齿形层序遍历-创新互联
文章源于:http://scjbc.cn/article/pppop.html

其他资讯