자바 구현 LeetCode (606)는 이진 트리에 따라 문자열 (나무 산책)을 생성

(606)는 이진 트리의 문자열을 만들 따르면

당신은 예약 주문 탐색 방법은, 이진 트리가 정수와 브라켓의 문자열로 변환해야합니다.

각각 빈 괄호 쌍 빈 노드 "()". 그리고 당신은 모든 권리 빈 괄호의 원래 이진 문자열 사이에 하나의 매핑에 영향을 생략 할 필요가 없습니다.

예 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)"

설명 : 첫 번째 예와 유사한,
우리는 첫 번째를 생략 할 수없는 것을 제외하고는 입력 및 괄호의 출력 사이에 하나의 매핑을 깰.

추신 :
트리를 탐색

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
      public String tree2str(TreeNode t) {
        StringBuilder sb = new StringBuilder();
        doTree2str(t, sb);
        return sb.toString();
    }
    
    private void doTree2str(TreeNode t, StringBuilder sb) {
        if (t != null) {
            sb.append(t.val);
            if (t.left != null || t.right != null) {
                sb.append('(');
                doTree2str(t.left, sb);
                sb.append(')');
                if (t.right != null) {
                    sb.append('(');
                    doTree2str(t.right, sb);
                    sb.append(')');
                }
            }
        }
    }
}
출시 1675 원저 · 원 찬양 20000 + · 전망 3,180,000 +

추천

출처blog.csdn.net/a1439775520/article/details/105200005