首页 > 其他分享 >代码随想录:从中序与后序遍历序列构造二叉树

代码随想录:从中序与后序遍历序列构造二叉树

时间:2025-01-13 22:21:10浏览次数:1  
标签:node 遍历 TreeNode nums int 随想录 right 二叉树 left

/**

  • Definition for a binary tree node.

  • struct TreeNode {

  • int val;
    
  • TreeNode *left;
    
  • TreeNode *right;
    
  • TreeNode() : val(0), left(nullptr), right(nullptr) {}
    
  • TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    
  • TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),
    
  • right(right) {}

  • };
    /
    class Solution {
    public:
    TreeNode
    constructMaximumBinaryTree(vector& nums) {
    if(nums.size()==0)return 0;
    else return build(nums);
    }

    TreeNode* build(vector& nums) {
    if (nums.size() == 0)
    return 0;

     int maxi = -1;
     int index = 0;
     for (int i = 0; i < nums.size(); i++) {
         if (nums[i] > maxi) {
             maxi = nums[i];
             index = i;
         }
     }
    
     // 最大值即是根节点值
     TreeNode* node = new TreeNode(maxi);
    
     vector<int> left(nums.begin(), nums.begin() + index);
     vector<int> right(nums.begin() + index + 1, nums.end());
    
    
     node->left = build(left);
     node->right = build(right);
    
     return node;
    

    }
    };

标签:node,遍历,TreeNode,nums,int,随想录,right,二叉树,left
From: https://www.cnblogs.com/huigugu/p/18669539

相关文章

  • leetcode刷题记录(java)——参考代码随想录:数组 链表 哈希表
    四、题目之:代码随想录https://programmercarl.com/(1)代码随想录:数组704.二分查找classSolution{publicintsearch(int[]nums,inttarget){if(target<nums[0]||target>nums[nums.length-1]){return-1;}intleft=0......
  • 【IO编程】深度优先遍历
    **深度优先遍历目录(Depth-FirstTraversal)**是一种递归或栈式的目录遍历方法,优先深入到子目录中,再回溯到父目录继续遍历其他子目录。这是一种常见的文件系统操作,适用于查找文件、统计目录大小等场景。深度优先遍历完整思路递归式遍历:优先进入子目录,完成当前目录所有子目录......
  • 代码随想录刷题第五天
    今日任务  242.有效的字母异位词  349. 两个数组的交集  202. 快乐数 1. 两数之和 242.有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。示例 1:输入:s="anagram",t="nagaram"输出:true示例......
  • 代码随想录算法训练营第6天 | 哈希表理论基础,242.有效的字母异位词,349. 两个数组的交
    一、刷题部分1.1哈希表理论基础原文链接:代码随想录题目链接:......
  • 奇安信代码扫描——路径遍历问题
    奇安信代码扫描——路径遍历问题解决路径遍历(PathTraversal)漏洞是一种常见的Web安全问题,它允许攻击者通过操纵文件路径访问不受限制的文件或目录。奇安信代码扫描工具检测到路径遍历问题,意味着你的应用程序中可能存在这种安全风险。要理解这个问题及其检测原理,我们需要深......
  • 代码随想录:完全二叉树的节点个数
    拿到一个节点,先判断是不是等边三角形,若是直接返回2^n-1,位运算写在专题中/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*......
  • 代码随想录:路径总和
    代码随想录:路径总和思路很简单,但是一个传参很巧妙,每次递归减去当前节点的值,就只用一个传参/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),righ......
  • 代码随想录:找树左下角的值
    代码随想录:找树左下角的值层次遍历轻轻松松/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x......
  • 代码随想录:左叶子之和
    代码随想录:左叶子之和没啥意思,很铸币的判断方法/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):v......
  • LeetCode:102.二叉树的层序遍历
    LeetCode:102.二叉树的层序遍历解题思路层序遍历顺序就是广度优先遍历。不过在遍历时候需要记录当前节点所处的层级,方便将其添加到不同的数组中。/***Definitionforabinarytreenode.*functionTreeNode(val,left,right){*this.val=(val===undefined?0:......