題目描述:
你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。
空節點則用一對空括號 「()」 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。
示例 1:
輸入: 二叉樹: [1,2,3,4]
輸出: 「1(2(4))(3)」
解釋: 原本將是「1(2(4)())(3())」,
在你省略所有不必要的空括號對之後,
它將是「1(2(4))(3)」。
示例 2:
輸入: 二叉樹: [1,2,3,null,4]
輸出: 「1(2()(4))(3)」
解釋:和第乙個示例相似,
除了我們不能省略第乙個對括號來中斷輸入和輸出之間的一對一對映關係。
方法1:
主要思路:
(1)主要是什麼時間加入括號是本題的難點,注意這裡括號括起來的是左子樹或者右子樹;
(2)且左子樹為空,但右子樹不為空時,需要使用空括號表示出來左子樹的位置;
(3)但右子樹為空時,是可以省略掉括號的;
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
str+
=to_string
(t->val);if
(t->left||t-
>right)
if(t-
>right)
} string tree2str
(treenode* t)
};
606 根據二叉樹建立字串
你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。空節點則用一對空括號 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。示例 1 輸入 二叉樹 1,2,3,4 1 2 3 4 輸出 1 2 4 3 解釋 原本將是 1 2 4 3 在你省略所有不必要...
606 根據二叉樹建立字串
你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。空節點則用一對空括號 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。示例 1 輸入 二叉樹 1 2,3 4 1 23 4 輸出 1 2 4 3 解釋 原本將是 1 2 4 3 在你省略所有不必要的...
606 根據二叉樹建立字串
你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。空節點則用一對空括號 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。示例 1 輸入 二叉樹 1 2,3 4 1 23 4 輸出 1 2 4 3 解釋 原本將是 1 2 4 3 在你省略所有不必要的...