二叉树遍历
标题:二叉树遍历 | 时间限制:1秒 | 内存限制:65536K | 语言限制:不限
根据给定的二叉树结构描述字符串,输出该二叉树按照中序遍历结果字符串。中序遍历顺序为:左子树,根结点,右子树。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); StringBuilder sb = new StringBuilder(); temp(str, sb); System.out.println(sb.toString()); } public static void temp(String str, StringBuilder sb) { if (str.contains("{")) { String mid = str.substring(0,1); String child = str.substring(2,str.length()-1); String left = ""; String right = ""; if (child.contains(",")) { if (',' == child.charAt(0)) { left = ""; right = child.substring(1); }else { if (',' == child.charAt(1)) { left = child.substring(0,1); right = child.substring(2); } else { char[] chars = child.toCharArray(); int j = 1; for (int i = 2; i < chars.length; i++) { if ('{' == chars[i]) { j++; } if ('}' == chars[i]) { j--; } if (j == 0) { j = i; continue; } } left = child.substring(0, j+1); if (j == child.length() - 1) { right = ""; }else { right = child.substring(j+2); } } } } else { left = child; right = ""; } temp(left, sb); sb.append(mid); temp(right, sb); } else { sb.append(str); } } }