public TreeNode str2tree(String s) {
if (s == null || s.length() == 0) {
Stack<TreeNode> stack = new Stack<>();
for (int end = 0, start = 0; end < s.length(); end++, start = end) {
while (end + 1< s.length() && Character.isDigit(s.charAt(end + 1))) {
TreeNode curNode = new TreeNode(Integer.parseInt(s.substring(start, end + 1)));
TreeNode parentNode = stack.peek();
if (parentNode.left != null) {
parentNode.right = curNode;
parentNode.left = curNode;
return stack.isEmpty() ? null : stack.peek();