天天看點

Leetcode 606.根據二叉樹建立字元串

根據二叉樹建立字元串

你需要采用前序周遊的方式,将一個二叉樹轉換成一個由括号和整數組成的字元串。

空節點則用一對空括号 "()" 表示。而且你需要省略所有不影響字元串與原始二叉樹之間的一對一映射關系的空括号對。

示例 1:

輸入: 二叉樹: [1,2,3,4]

Leetcode 606.根據二叉樹建立字元串

輸出: "1(2(4))(3)"

解釋: 原本将是"1(2(4)())(3())",

在你省略所有不必要的空括号對之後,

它将是"1(2(4))(3)"。

示例 2:

輸入: 二叉樹: [1,2,3,null,4]

Leetcode 606.根據二叉樹建立字元串

輸出: "1(2()(4))(3)"

解釋: 和第一個示例相似,

除了我們不能省略第一個對括号來中斷輸入和輸出之間的一對一映射關系。

思路

Leetcode 606.根據二叉樹建立字元串
Leetcode 606.根據二叉樹建立字元串
Leetcode 606.根據二叉樹建立字元串
1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 public class Solution {
11     public String tree2str(TreeNode t) {
12         if(t==null)
13             return "";
14         if(t.left==null && t.right==null)
15             return t.val+"";
16         if(t.right==null)
17             return t.val+"("+tree2str(t.left)+")";
18         return t.val+"("+tree2str(t.left)+")("+tree2str(t.right)+")";
19     }
20 }