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

本文讲述了如何通过递归方法解决LeetCode606题,将二叉树转换为括号和整数的字符串表示,强调了递归终止条件和StringBuilder在构建字符串中的应用。作者还模拟了一个面试场景,展示了如何在实际面试中解答此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Leetcode 606. 从二叉树构造字符串

题目描述

在这里插入图片描述

例子

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

小白做题

坐在自习室正在准备刷题的小白看到这道题,想想自己那可是没少和白月光做题呢,也不知道小美刷题刷到哪里了,这题怎么还没来问我,难道是王谦谦去做题了?

这时候黑长直女神突然进到教室过来问:小白,你看到二叉树题目了吗,这道606的题目,感觉描述的很复杂,好像是说树结构转换为字符串类型,你有什么好思路吗?

小白内心镇定:这机会不就来了吗,小美,听说阮经天的《周处除三害》上映了,有机会一起去看看吧?

在这里插入图片描述
哦,不是,题目描述意思说的简单一些。

这种题目我们首先把他进行下条件梳理,原来描述的是太复杂了,而且题目拽了一堆转悠名词,我们最好忽略它。
我们把之前的题目进行瘦身环节,你是风儿我是沙,让大片描述飞走吧。
在这里插入图片描述

  • 给定二叉树的根,通过先序遍历的方式从二叉树构造一个由括号和整数组成的字符串,并返回。

  • 如果根的右节点为空,则省略空括号对,这不会影响二叉树的表示。

  • 如果左节点为空并且右节点有一个值,其中包含左节点的空括号,如果省略左节点,则会影响二叉树表示。

[1 null 2] --> 1(()(2)) 如果省略左侧 () 空括号,则会影响二叉树 1(2) --> 表示左节点为 2,右节点为 null

解题环节

树的题目我们首先按照递归的算法来考虑,另外很重要的一点,就是递归的终止条件。
所以我们要考虑根为null情况时候,是返回空字符串的
if (root == null) return “”
case 0:是要返回S字符串,这种条件下,左子树和右子树分别都是为空
case 1: 如果右子树为空,返回左子树字符串
正常返回左子树与右子树的值。

考虑好条件后,我们接下来考虑用StringBuilder来进行字符串的存储。

左子树的表达方式:String left = tree2str(root.left);
右子树的表达方式:String right = tree2str(root.right);

最后的重点来了,就是如果右子树为空,那么我们就返回空;如果不为空,那么我们就把右子树加入到string字符串中。

小美:小伙子,可以啊,这不仅进行了解题,阅读理解也有俩下子!不过电影票要你买单哦。

小白:没问题&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值