diff --git a/problems/construct-string-from-binary-tree.kt b/problems/construct-string-from-binary-tree.kt new file mode 100644 index 0000000..60669c4 --- /dev/null +++ b/problems/construct-string-from-binary-tree.kt @@ -0,0 +1,30 @@ +/** + * Example: + * var ti = TreeNode(5) + * var v = ti.`val` + * Definition for a binary tree node. + * class TreeNode(var `val`: Int) { + * var left: TreeNode? = null + * var right: TreeNode? = null + * } + */ +class Solution { + fun tree2str(root: TreeNode?): String { + if (root == null) { + return "" + } + + val value = root.`val`.toString() + val left = "(${tree2str(root.left)})" + val right = "(${tree2str(root.right)})" + + + if (left == "()" && right == "()") { + return value + } else if (right == "()") { + return "$value$left" + } + + return "$value$left$right" + } +}