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