Leetcode 1028. 从先序遍历还原二叉树(DAY 21)(划开新时代 Hard第一题 Hard含题解)
发布日期:2021-06-30 22:24:26 浏览次数:2 分类:技术文章

本文共 1287 字,大约阅读时间需要 4 分钟。

原题题目

在这里插入图片描述



代码实现(有全局变量 绝大部分自解 极小部分看解)

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     struct TreeNode *left; *     struct TreeNode *right; * }; *///记录字符串暂时位置int pos;struct TreeNode* helper(char* S,struct TreeNode* root,int level){
int templevel = 0,number = 0; while(S[pos] == '-' && S[pos] != NULL) //计算当前层数 {
templevel++; pos++; } if(!S[pos] || level != templevel) {
//对于不符合层数条件则说明 字符串已提前移位 //则需要回到之前位置 减回去 if(level != templevel) pos -=templevel; return NULL; } //ASCII码值只能表示0-9 对于两位数及以上则只能以下面方式计算 while(S[pos] >= '0' && S[pos] <= '9') number = number*10 + S[pos++] - '0'; root = (struct TreeNode*)malloc(sizeof(struct TreeNode)); root->val = number;//赋值 root->left = helper(S,root->left,level+1);//递归得到左右子树 root->right = helper(S,root->right,level+1);//递归得到左右子树 return root;}struct TreeNode* recoverFromPreorder(char * S){
if(!strlen(S)) return NULL; pos = 0;//初始化全局变量 struct TreeNode* root = helper(S,root,0); return root;}


闲谈

对于每道Leetcode Hard都打算写题解了

最近在准备期末考试
比如线代 0基础到2天网课 奇迹冲完
比如高数 也是只有2天时间 学完hhhh
真的是挑战极限哈
结果发现计算机导论
感谢曾经的自己学过 汇编 和部分的CSAPP
对于考的很难的导论 自己复习起来也并没有像其他同学那么吃力
还甚至当了波小老师hhhh
所以最近做题的速度就慢了很多 寒假希望图书馆还会开门
然后就可以安心补上进度了嗷
在这里插入图片描述

转载地址:https://love6.blog.csdn.net/article/details/112409585 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Leetcode 99. 恢复二叉搜索树(DAY 22 Hard含题解)
下一篇:Leetcode 面试题 04.05. 合法二叉搜索树(DAY 20)(迭代中序遍历)

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月09日 10时11分56秒