当前位置: 首页 > news >正文

ACM模式手动构建二叉树

ACM模式手动构建二叉树

给一个vector<string>,数组每个元素表示二叉树节点的val,如果元素为"N"则为空节点,构建二叉树

/*
#include <iostream>
#include <vector>
#include <queue>
#include <string>
using namespace std;
*/
// 笔试用通用库代替以上库方便
#include <bits/stdc++.h>// 定义二叉树节点结构
struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};// 构建二叉树函数
TreeNode* buildTree(const vector<string>& data) {if (data.empty() || data[0] == "N") return nullptr;TreeNode* root = new TreeNode(stoi(data[0]));queue<TreeNode*> que;que.push(root);int i = 1;while (!que.empty() && i < data.size()) {TreeNode* cur = que.front();que.pop();// 左子节点if (i < data.size() && data[i] != "N") {cur->left = new TreeNode(stoi(data[i]));que.push(cur->left);}i++;// 右子节点if (i < data.size() && data[i] != "N") {cur->right = new TreeNode(stoi(data[i]));que.push(cur->right);}i++;}return root;
}// 示例测试
int main() {vector<string> data = {"1", "2", "3", "N", "4", "5", "N"};TreeNode* root = buildTree(data);return 0;
}

相关文章:

  • 精读计算机体系结构基础 第三章 特权指令系统
  • 使用 SHAP 进行特征交互检测:揭示变量之间的复杂依赖关系
  • 豆包:国内 web 辅助开发的领头羊
  • 以党建网为例,深入分析IT技术栈,实战经验
  • 基于多层权重博弈与广播机制的仿生类脑 AI 决策框架
  • 文件(分片)并行上传时计算总的上传进度
  • Linux基础开发工具一(yum/apt ,vim)
  • C++内存管理详解
  • ES 面试题系列「二」
  • HTML难点小记:一些简单标签的使用逻辑和实用化
  • 49.EFT测试与静电测试环境和干扰特征分析
  • RS485和RS232 通信配置
  • 【Linux高级全栈开发】2.1高性能网络-网络编程——2.1.1 网络IO与IO多路复用——select/poll/epoll
  • Kubernetes排错(十四):Pod状态异常排查手册
  • 每日脚本 5.11 - 进制转换和ascii字符
  • Lambda表达式能用在哪些场景?
  • libcurl简单使用
  • TeledyneLeCroy在OFC2025 EA展台上展示了其400G/800G的全包围的测试解决方案,满足了UEC联盟和UALINK联盟的技术需求
  • [Java][Leetcode simple]26. 删除有序数组中的重复项
  • 欧拉路与欧拉回路(模板)
  • 西北大学副校长成陕西首富?旗下巨子生物去年净利超20亿,到底持股多少
  • 外交部:正确认识和对待历史是检验日本能否恪守和平发展承诺的重要标准
  • 山西忻州市人大常委会副主任郭建平接受审查调查
  • 《瞭望》周刊社原总编辑、党委书记姬斌逝世,享年67岁
  • 让“五颜六色”面孔讲述上海故事,2025年上海城市推荐官开启选拔
  • 解放军仪仗分队参加白俄罗斯纪念苏联伟大卫国战争胜利80周年阅兵活动