leetcode 606. Construct String from Binary Tree(从二叉树建立字符串)

Linux Kernel入门到精通系列讲解 - 总目录 在学习Linux Kernel之前,需要先准备开发环境,方便后续进行开发。可以根据自身情况,选择性阅读该章节。学习该章节之前,你应该了解一下网络概念,明白为什么要讲这些,才能更有方向的去理解学习。Linux ARM平台开发系列讲解(设备树篇) 4.1.1 设备树的原理详解。本项目完全开源,仅供学习使用,如需其他用途,请与本人联系。),本章节你可以学习到。摄像头V4L2子系统、Linux kernel常用的子系统等,ARM架构、RISCV架构、Uboot等。 阅读详情

在这里插入图片描述
在这里插入图片描述

给出一个二叉树,用前序遍历的方式搭建字符串。
节点值被括号包围,在不破坏树的重建的情况下可省略空括号。
什么叫不破坏树的重建?
比如Example 1, 2没有右子树,(2(4))不影响重建,因为有整个的括号把这个子树包围,能看出来它没有右子树。
但是Example 2中,2没有左子树,这时()就不能省略,如果省略,成了(2(4)),那4到底是左子树还是右子树呢。

思路:

前序遍历本身还是比较容易想到的

root.val
preOrder(root.left);
preOrder(root.right);

问题在于加括号这一步,很绕。
首先root本身是不加括号的,就需要先放root.val,
括号就要在左子树和右子树处加。
于是前序遍历成了这种形式

res += root.val
res += "("
preOrder(root.left);
res += ")"

res += "("
preOrder(root.right);
res += ")"

left为null, right不为null时,要加上左子树的"()"
StringBuilder要比String + 省内存,要快(因为不用新建object)。

class Solution {
    StringBuilder res = new StringBuilder();
    
    public String tree2str(TreeNode root) {
        preOrder(root);
        return res.toString();
    }
    
    void preOrder(TreeNode root) {
        res.append(root.val);
        if(root.left == null && root.right == null) return;
        
        if(root.left != null) {
            res.append("(");
            preOrder(root.left);
            res.append(")");
        }
        if(root.right != null) {
            if(root.left == null) res.append("()");
            res.append("(");
            preOrder(root.right);
            res.append(")");
        }
        
    }
}
用 SAP CDS View 和 Fiori Elements 快速打造 CRM Service Order 应用──十分钟跑通从数据模型到上线的全流程 通过CDS 视图 + Fiori Elements的组合,我们得以在极短时间内把传统 CRM Service Order 场景迁移到现代化的 Fiori 界面,而且代码量极小、可维护性高。若后续需要离线能力,可考虑将同一 OData 服务暴露给 Mobile Services,再配合 MDK 或 UI5 Mobile Toolkit;若要支持复杂审批流,则可以在同一 Launchpad 内嵌入 Process Visibility Dashboard,实现端到端可视化。 阅读详情

相关推荐

状态机设计与实现( stm32小车避障为例)

本文以STM32小车避障为例,介绍了状态机设计与实现方法。首先阐述了状态机的事件驱动特性、清晰结构和易扩展优势,并给出硬件组成框架。核心实现部分展示了状态枚举定义、状态转移图和主循环框架,通过switch-case结构实现状态切换。关键状态示例包括前方扫描和转向决策逻辑,通过传感器数据驱动状态转移。总结指出状态机设计需定义枚举状态、实现状态函数、使用switch跳转并更新全局状态。文章最后声明内容为学习笔记,欢迎读者指正交流。全文结构清晰,代码示例具体,为嵌入式系统状态机设计提供了实用参考。

2302_80219536的博客 1046

Leetcode606.Construct String from Binary Tree根据二叉树创建字符串

你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。 空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 示例 1: 输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出:...

Ha12312的博客 229

如何实现MCGS与S7-200SMART PLC以太网多台通信控制?

第九步:(设备工具箱—设备管理—鼠标依次点击通用TCP/IP父设备—西门子_ Smart200到设备窗口里面去)数据类型:第0位(指PLC地址变量小数点后面的位数,例如我地址是M0.0,那么在数据类型应填写通道的第00位)第十步:(鼠标双击打开通用TCPIP父设备0--[通用TCP/IP父设备]进入通信配置)通道地址:0(指小数点前面起始字节的地址,例如我地址是M0.0,那么应在通道地填写0)。第七步:(选择通用TCP/IP父设备,点击新增,右侧选定设备就会自动添加进去。

u010670857的博客 6713

【LeetCode】-- 606. 根据二叉树创建字符串

给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。......

局部变量和全局变量 356

程序化广告行业(23/89):深度剖析广告效果评估指标

大家好,我一直希望能和大家一起在技术领域不断探索、共同进步。在之前的文章中,我们了解了程序化广告中腾讯的业务布局和广告效果评估的基础概念,今天让我们进一步深入剖析广告效果评估的各项指标,这对理解程序化广告的运作机制至关重要

yyy173611的博客 4863

S7-1200PLC 与温控仪表Modbus RTU通信

硬件:cpu 1214C 目的:通过Modbus RTU协议,实现对温控仪表的控制 软件:Portal V14SP1

weixin_43922025的博客 3万+

小白水平理解面试经典题目leetcode 606. Construct String from Binary Tree【递归算法】

坐在自习室正在准备刷题的小白看到这道题,想想自己那可是没少和白月光做题呢,也不知道小美刷题刷到哪里了,这题怎么还没来问我,难道是王谦谦去做题了?这时候黑长直女神突然进到教室过来问:小白,你看到二叉树题目了吗,这道606的题目,感觉描述的很复杂,好像是说树结构转换为字符串类型,你有什么好思路吗?小白内心镇定:这机会不就来了吗,小美,听说阮经天的《周处除三害》上映了,有机会一起去看看吧?哦,不是,题目描述意思说的简单一些。

心安成长的码字书房 1262

c语言实现语音检测vad_壹鸽技术科普·智能语音客服系统中的前端语音处理技术...

随着智能客服机器人产业的迅速发展,尤其是伴随着人工智能AI的风潮,预计在2020年我国智能客服市场将达到万亿级别。在智能客服机器人领域中对电话信道语音进行端点检测处理的应用正在不断扩展和深化。目前语音端点检测(Voice Active Detection,简称VAD)的主要任务是准确快速判决出待处理的语音信号有话还是无话,作为自动语音识别(Automatic Speech Recognition,...

weixin_36431018的博客 507

leetCode606

(╯▽╰) /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; ...

剑似生平 207

Python Selenium调用IE11报错全解析:从环境配置到稳定运行

在Web自动化测试领域,Selenium作为主流的跨浏览器测试框架,其核心原理是通过WebDriver协议与不同浏览器的驱动程序进行通信,实现对浏览器行为的模拟与控制。这一技术为软件测试的自动化、回归测试的效率提升提供了重要价值,广泛应用于金融、政务等对遗留系统兼容性要求高的行业场景。然而,当技术栈涉及过时的浏览器如IE11时,环境配置的复杂性显著增加,特别是Python与Selenium的组合常遭遇驱动兼容性、安全设置等挑战。本文聚焦于解决Python Selenium驱动IE11时的典型报错问题,深入剖

weixin_28834765的博客 322

9.1 机器人动力学建模

目录9.1 机器人动力学建模一、机器人动力学的基本概念1. 什么是机器人动力学?2. 动力学方程二、机器人动力学建模方法1. 拉格朗日方法2. 牛顿-欧拉方法三、Simulink 中的机器人动力学建模1. 使用 Simscape Multibody 建模示例:构建一个两连杆机械臂的动力学模型。步骤:2. 使用 Robotics System Toolbox 建模示例:构建一个六自由度工业机器人的动力学模型。步骤:四、示例:两连杆机械臂的动力学建模目标:步骤:五、结果分析1. 动态响应2. 参数敏感性六、总结

xiaoheshang_123的博客 625

LeetCode 606:Construct String from Binary Tree (c++)

一:题目分析 You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way. The null node needs to be represented by empty parenthesis pair "()"

曦曦慕慕的专栏 707

PCIE的MSI中断处理机制与优化策略

PCIe设备的。

xiaoheshang_123的博客 514

LeetCode //C - 606. Construct String from Binary Tree

【代码】LeetCode //C - 606. Construct String from Binary Tree。

Made in Code 1102

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode: 606. Construct String from Binary Tree

LeetCode: 606. Construct String from Binary Tree You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way. The null node needs t

qha0731的专栏 380

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Leetcode PHP题解--D92 606. Construct String from Binary Tree

D92 606. Construct String from Binary Tree 题目链接 606. Construct String from Binary Tree 题目分析 输出二叉树的节点值。子树内容用半角括号括住,null值也需要括住。 思路 用全局变量保存字符串内容。保存节点值...

167

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LeetCode 606 Construct String from Binary Tree

You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way. The null node needs to be represented by empty parenthesis pair "()". And you

nudt_oys的博客 447

Leetcode 606.根据二叉树创建字符串(Construct String from Binary Tree)

Leetcode 606.根据二叉树创建字符串 1 题目描述(Leetcode题目链接)   你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。 空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: "1(2(4))(3)" 解释: 原本将是“1(2(4)())(3())”,

qq_39378221的博客 172

【Leetcode】606. Construct String from Binary Tree

将二叉树以 root(left_child)(right_child)的形式构建成字符串,省去不需要的括号(右子树为None的时候可以不用) 方法1 递归法 当节点为叶子节点时,直接返回值不需要加括号,如果左子树为None右子树不为None,那么左子树的空字符串也要用括号括起来,如果左子树不为None右子树为None,则右子树的空字符串可以省略 class Solution1: def...

很吵请安静 379

LeetCode606:Construct String from Binary Tree

题干大致: 根据已给的二叉树,按照先序遍历的顺序生成字符串,利用()分开各个子树。 Example1: Input: Binary tree: [1,2,3,4] 1 / \ 2 3 / 4 Output: “1(2(4))(3)” Example2: Input: Binary tree: [1,2,3,null,4]

Cecilia_whf的博客 512

Leetcode606. Construct String from Binary Tree (C++)

Leetcode606. Construct String from Binary Tree Leetcode606. Construct String from Binary Tree 递归方法可以一行完成,迭代方法比较麻烦。复杂度不佳,尚待提高。 代码如下: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right

无远弗届 239

leetcode 606. Construct String from Binary Tree

leetcode 606. Construct String from Binary Tree 题目: You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way. The null node needs to be r...

wyxwyx469410930的博客 310

LeetCode 606. Construct string from Binary Tree

Construct String from Binary Tree - LeetCode You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way. The null node needs to be represen...

zhaohaibo的博客 441

leetcode 606. Construct String from Binary Tree | 606. 根据二叉树创建字符串

题目 https://leetcode-cn.com/problems/construct-string-from-binary-tree/ 题解 当右子树非空时,不管有没有左子树,一定要用()将左子树撑起来。 其余情况就不用瞎折腾了。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; *

寒泉 5万+

LC 606. Construct String from Binary Tree

二叉树序列化过程可以通过前序遍历实现,我们可以使用递归方法,维护一个全局字符串变量,递归出口当节点为空。每次层递归时,把当前节点加入,然后这道题如果存在左或右子节点时,不管左节点是否为空一定要加入括号。所以查看是否存在左或右节点,如果存在。加左括号然后遍历左子树(不管有没有)遍历结束加入右括号,然后查看右节点是否存在如果存在那么重复左节点操作即可。给定一个二叉树,返回序列化后二叉树结构,要求用括号包含子树信息.

ok1382038的博客 517

LeetCode 606. Construct String from Binary Tree

LeetCode 606. Construct String from Binary Tree (Easy) 主要知识点:树、preorder;优先级:4(preorder加强版)

温迪今天刷题了吗 880
上一篇: orb slam [RGBD-1] process has died解决
下一篇: ubuntu16 配置ROS使用Python3.7完整过程 + 踩坑记录
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值