美文网首页
L2-011. 玩转二叉树

L2-011. 玩转二叉树

作者: 高思阳 | 来源:发表于2018-10-18 13:45 被阅读8次

先序遍历首先访问根结点,然后遍历左子树,最后遍历右子树
中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树
后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点

结论:
(1)先序遍历(第一个为树根)和后序遍历(最后一个为树根)可以确定树根
(2)中序遍历可以在知道根节点之后,确定左右子树

因此:无论是先序遍历序列还是后序遍历序列,确定了树根后,都需要中序遍历序列来确定左子树和右子树分别是哪一部分,然后才能够还原一颗二叉树。

L2-011. 玩转二叉树
给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。

输入格式:
输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。
输出格式:
在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。
输入样例:
7
1 2 3 4 5 6 7
4 1 3 2 6 5 7

大体题意:
给你二叉树的中序遍历和前序遍历,然后再将所有非叶结点左右孩子对换,最后层序遍历输出。
思路:
分析下样例,思路很明确,先根据中序遍历和前序遍历用链表的方式构造出二叉树,然后再层序遍历输出即可,只不过这里的层序遍历是先右后左的方式。
构造二叉树用结构体递归做,层序遍历直接bfs即可!

相关文章

  • L2-011. 玩转二叉树

    先序遍历首先访问根结点,然后遍历左子树,最后遍历右子树中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树后序遍...

  • 【呆鸟译Py】玩转SQLAlchemy 02 - 安装与关联数据

    玩转SQLAlchemy 01 - 简介玩转SQLAlchemy 02 - 安装与关联数据库玩转SQLAlchem...

  • 【呆鸟译Py】玩转SQLAlchemy 03 - 数据类型

    玩转SQLAlchemy 01 - 简介玩转SQLAlchemy 02 - 安装与关联数据库玩转SQLAlchem...

  • 【呆鸟译Py】玩转SQLAlchemy 01 - 简介

    玩转SQLAlchemy 01 - 简介玩转SQLAlchemy 02 - 安装与关联数据库玩转SQLAlchem...

  • iOS 玩转推送通知

    iOS 玩转推送通知 iOS 玩转推送通知

  • 数据结构与算法-二叉树02

    二叉树的定义 二叉树的特点 二叉树的五中基本形态 其他二叉树 斜二叉树 满二叉树 完全二叉树图片.png满二叉树一...

  • 做一个调皮的顽童

    想做一个调皮的顽童 天天都开心 什么事情,在我看来 都可以玩转 玩转工作 玩转生活 玩转很多很多 我不想有太多的烦...

  • 二叉树

    二叉树 高度 深度真二叉树 满二叉树 完全二叉树 二叉树遍历前序 中序 后序层序遍历 翻转二叉树 递归法...

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 树与二叉树

    **树 ** 二叉树 满二叉树 完全二叉树 三种遍历方法 树与二叉树的区别 二叉查找树 平衡二叉树 红黑二叉树

网友评论

      本文标题:L2-011. 玩转二叉树

      本文链接:https://www.haomeiwen.com/subject/nvnjzftx.html