题解 | #二叉树遍历#

二叉树遍历

https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef

import java.util.Scanner;

class TreeNode {
    public char val;
    public TreeNode left;
    public TreeNode right;

    public TreeNode(char a) {
        this.val = a;
    } 
}

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            int[] indax = new int[1];
            midTree(createTree(str, indax));
        }
    }

    public static TreeNode createTree(String str, int[] indax) {
        if (str.charAt(indax[0]) == '#') {
            indax[0]++;
            return null;
        }
        TreeNode root = new TreeNode(str.charAt(indax[0]));
        indax[0]++;
        root.left = createTree(str, indax);
        root.right = createTree(str, indax);
        return root;
    }

    public static void midTree(TreeNode root) {
        if (root == null) {
            return;
        }
        midTree(root.left);
        System.out.print(root.val +" ");
        midTree(root.right);
    }
}

全部评论

相关推荐

投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务