前置知识:
对于不一定是完全二叉树,根据已知的中序+后序(前序)遍历顺序来建树(ps:中序一定是需要的)
参考大佬博客:已知中序和前序(或后序)遍历结果生成树_勿忘初心丶的博客-优快云博客_已知中序序列和后序序列
解题思路:
对于树的每一层,最左端的对应着左侧影,最右端对应着右侧影。
因此也不需要建树,只需要把每一层的元素存在一个数组 arr 中,左侧影为arr[0],右侧影为 arr[-1]。
例如题目中的arr存放的数据为:[[1],[6,2],[7,3],[8,4],[5]]
那么我们就可以自行理解一下,左侧影1,6,7,8,5,右侧影1,2,3,4,5了......
题目:
我们将二叉树的“侧影”定义为从一侧能看到的所有结点从上到下形成的序列。例如下图这棵二叉树,其右视图就是 { 1, 2, 3, 4, 5 },左视图就是 { 1, 6, 7, 8, 5 }。
于是让