牛客网真题2019-17-将满二叉树转换二叉树

将满二叉树转换为求和树

http://www.nowcoder.com/questionTerminal/b31734e46ba644de85a9cf95bbd57a5f

满二叉树,中序遍历就能还原二叉树,这算是本题的bug。
中序二叉满树到中序求和二叉树
参考归并排序的写法。

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;


public class Main {
    //满二叉树,ints必为奇数,中间那个结点是根结点。返回值是左右子树和根节点的和。
    public static int ToSumTree(int start, int end, int[] tree){
        if(start == end - 1){
            int temp = tree[start];
            tree[start] = 0;
            return temp;
        }
        int mid = (end + start) / 2;
        int node = tree[mid];
        tree[mid] = ToSumTree(start, mid, tree) + ToSumTree(mid + 1, end, tree);
        return node + tree[mid];
    }

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        sc.nextLine();
        String[] line = sc.nextLine().split(" ");
        int[] midFullTree;
        midFullTree = Arrays.stream(line).mapToInt(Integer::parseInt).toArray();
        ToSumTree(0, midFullTree.length, midFullTree);
        //        System.out.println(Arrays.toString(midFullTree));
        for(int i = 0; i < midFullTree.length; i++){
            System.out.print(midFullTree[i]);
            if(i<midFullTree.length-1){System.out.print(" ");}
        }
    }
}

全部评论

相关推荐

虽然大家都在劝退读研,说读研以后也是打工,不如本科直接去打工,但随着现在研究生越来越多,很多企业招聘要求就会变成研究生起招,本科投递简历就会被卡,横向比较时也会因为"本科学历比不上研究生学历"被筛掉,而且你没发现劝退读研的基本都是读完研的人吗?而且进体制、国企等,研究生也比本科生升的快,他们拿着研究生文凭劝你一个本科生,可别当真了
球1个offer:每个行业都是不一定的,例如计算机开发岗,只要是92学历,完全可以冲互联网大厂,没进去抛开运气因素,就是不够努力,准备的晚没有实习等等。计算机算法岗还是要读研的,研究生是基本要求。现在太多人无脑考研了,因为本科秋招春招啥都没准备过,只能读研
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务