关注
import java.util.*;
public class Test{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int index = 0, preIndex = 0;
while(s.charAt(index) != '(') //找到根节点
index++;
TreeNode root = new TreeNode(null, null, null, s.substring(0,index)), tmp = root;
index++;
preIndex = index;
char flag = '(';
while(index < s.length()) {
char c = s.charAt(index);
if(c == '(' || c == ')' || c == ',') {
if(flag == '(') {
tmp.left = new TreeNode(null, null, null, s.substring(preIndex,index));
tmp.left.father = tmp;
tmp = tmp.left;
}else if(flag == ',') {
tmp = tmp.father;
tmp.right = new TreeNode(null, null, null, s.substring(preIndex,index));
tmp.right.father = tmp;
tmp = tmp.right;
}else if(flag == ')') {
tmp = tmp.father;
}
preIndex = index+1;
flag = c;
}
index++;
}
func(root);
}
private static void func(TreeNode root) {
if(root.left != null)
func(root.left);
System.out.print(root.val);
if (root.right != null)
func(root.right);
}
}
class TreeNode{
TreeNode left,right,father;
String val;
public TreeNode(TreeNode left, TreeNode right, TreeNode father, String val) {
this.left = left;
this.right = right;
this.father = father;
this.val = val;
}
}
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
21939次浏览 415人参与
# 我的工作日记 #
95866次浏览 1260人参与
# 毕业季,给职场新人一些建议 #
18153次浏览 342人参与
# 晒一晒你收到的礼盒 #
61306次浏览 369人参与
# 我的实习日记 #
2431346次浏览 25369人参与
# 辞职之后最想做的一件事 #
9545次浏览 155人参与
# Offer比较,求稳定还是求发展 #
48578次浏览 235人参与
# 薪资一样,你会选择去大厂还是小公司 #
15740次浏览 99人参与
# 你想吐槽公司的哪些规定 #
16565次浏览 65人参与
# 选offer应该考虑哪些因素 #
16287次浏览 266人参与
# 你见过最离谱的招聘要求是什么? #
187802次浏览 1401人参与
# 机械人还在等华为开奖吗? #
216776次浏览 1097人参与
# 第一份工作应该只看薪资吗 #
138146次浏览 1455人参与
# 秋招想进国企该如何准备 #
57425次浏览 374人参与
# 为了秋招你都做了哪些准备? #
10412次浏览 159人参与
# 在国企工作的人,躺平了吗? #
327190次浏览 3841人参与
# 你怀疑过自己的专业选择吗? #
17092次浏览 201人参与
# 牛客十周岁生日快乐 #
129218次浏览 1516人参与
# 你想留在一线还是回老家? #
37353次浏览 446人参与
# 你小时候最想从事什么职业 #
90961次浏览 1700人参与