LeetCode 606. 根据二叉树创建字符串(递归)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 606. 根据二叉树创建字符串(递归)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目
- 2. 遞歸解題
1. 題目
你需要采用前序遍歷的方式,將一個(gè)二叉樹(shù)轉(zhuǎn)換成一個(gè)由括號(hào)和整數(shù)組成的字符串。
空節(jié)點(diǎn)則用一對(duì)空括號(hào) “()” 表示。而且你需要省略所有不影響字符串與原始二叉樹(shù)之間的一對(duì)一映射關(guān)系的空括號(hào)對(duì)。
示例 1: 輸入: 二叉樹(shù): [1,2,3,4]1/ \2 3/ 4 輸出: "1(2(4))(3)" 解釋: 原本將是“1(2(4)())(3())”, 在你省略所有不必要的空括號(hào)對(duì)之后, 它將是“1(2(4))(3)”。示例 2: 輸入: 二叉樹(shù): [1,2,3,null,4]1/ \2 3\ 4 輸出: "1(2()(4))(3)" 解釋: 和第一個(gè)示例相似, 除了我們不能省略第一個(gè)對(duì)括號(hào)來(lái)中斷輸入和輸出之間的一對(duì)一映射關(guān)系。來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/construct-string-from-binary-tree
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 遞歸解題
class Solution {string ans; public:string tree2str(TreeNode* t) {ans = treeToStr(t);return ans;}string treeToStr(TreeNode *root){if(root == NULL)return "";string sub(to_string(root->val));if(!root->left && !root->right)return sub;sub.push_back('(');//左邊不管存在與否都要加括號(hào)sub += treeToStr(root->left);sub.push_back(')');if(root->right)//右邊存在的時(shí)候才加括號(hào),否則省略{sub.push_back('(');sub += treeToStr(root->right);sub.push_back(')');} return sub;} };總結(jié)
以上是生活随笔為你收集整理的LeetCode 606. 根据二叉树创建字符串(递归)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 1028. 从先序遍历
- 下一篇: LeetCode 556. 下一个更大元