构建二叉树 mirror中序遍历 A了     static String solution(String input) {         TreeNode node = solutionSub(input);         String result = treeMid(node);         return result;     }     public static String treeMid(TreeNode head) {         StringBuilder sb = new StringBuilder();         if (head == null) return null;         TreeNode cur1 = head;         TreeNode cur2 = null;         while (cur1 != null) {             cur2 = cur1.left;             if (cur2 != null) {                 while (cur2.right != cur1 && cur2.right != null) {                     cur2 = cur2.right;                 }                 if (cur2.right != cur1) {                     cur2.right = cur1;                     cur1 = cur1.left;                     continue;                 } else {                     cur2.right = null;                 }             }             sb.append(cur1.val);             cur1 = cur1.right;         }         return sb.toString();     }     static TreeNode solutionSub(String input) {         if (input == null || input.length() == 0) return null;         Integer i = Integer.valueOf(input.substring(0, 1));         TreeNode node = new TreeNode(i);         if (input.length() > 1) {             String child = input.substring(2, input.length() - 1);             int left = 0;             int right = 0;             int mid = 0;             for (int j = 0; j < child.length(); j++) {                 if (child.charAt(j) == '(') {                     left++;                     continue;                 }                 if (child.charAt(j) == ')') {                     right++;                     continue;                 }                 if (child.charAt(j) == ',' && left == right) {                     mid = j;                     break;                 }             }             String leftChild = child.substring(0, mid);             String rightChild = child.substring(mid + 1);             TreeNode le = solutionSub(leftChild);             TreeNode ri = solutionSub(rightChild);             node.left = le;             node.right = ri;         }         return node;     }
点赞 评论

相关推荐

程序员牛肉:1.大头肯定是院校问题,这个没啥说的。 2.虽然有实习,但是实习的内容太水了,在公司待了七个月的时间,看起来就只做了jwt和接入redis。爬取新闻,数据导入。这几个需求值得你做七个月吗?这不就是三四个月的工作量吗?我要是面试官的话真心会认为你能力不太行。所以既然有实习了,一定要好好写,像是Swagger这种东西是真没必要写上去,就拉一个包的事情。 3.我个人觉得话,在校生不要把自己当社招看,除非你的项目是特别牛逼,特别有名的含金量,否则不要写这种密密麻麻的一串子工作职责。你的项目只有一个作用,就是供面试官从中来抽取八股对你进行拷打。 但是你现在这个看不来什么技术点,可以改一下,详细表述一下你用什么技术实现了什么功能,在实现这个功能的过程中,你解决了什么难题。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务