Leetcode总结—二叉树的构造
二叉树是面试中常见的题目类型,这里,针对leetcode前200道题中的二叉树相关问题进行总结与思考,力求烂熟于心,能根据题目名回忆起题目的具体描述,进而用简洁的语言描述出算法的核心。具体的题目答案可打开leetcode查看历史提交记录。
二叉树的遍历是上一篇的内容,可先回顾;本篇主要整理二叉树的构造相关题目和思路。
二叉树的构造(binary-tree-traversal)
给定二叉树特定遍历下的结果,构造出原本的二叉树。
解题关键在于定位出根节点,划分出左右子树,然后 递归 构建左右子树
1.从前序与中序遍历序列构造二叉树该题是leetcode105题,medium难度,一句话题干描述:从前序与中序遍历序列构造二叉树。
解决方案1(复杂度高): 先序遍历的顺序是根节点,左子树,右子树。中序遍历的顺序是左子树,根节点,右子树。
所以我们只需要根据先序遍历得到根节点,然后在中序遍历中找到根节点的位置,它的左边就是左子树的节点,右边就是右子树的节点。生成左子树和右子树就可以递归的进行了。
12345678910111213141516171819202122public TreeNo ...
Leetcode总结—二叉树的遍历
二叉树是面试中常见的题目类型,这里,针对 leetcode 前200道题中的二叉树相关问题进行总结与思考,力求烂熟于心,能根据题目名回忆起题目的具体描述,进而用简洁的语言描述出算法的核心。具体的题目答案可打开 leetcode 查看历史提交记录。
二叉树的遍历(binary-tree-traversal)
二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。
为什么研究二叉树的遍历?
因为计算机只会处理线性序列,而我们研究遍历,就是把树中的结点变成某种意义的线性序列,这给程序的实现带来了好处。
1 三种基本遍历方式首先是二叉树的遍历方式,最简单基础的也就是前序(preorder)、中序(inorder)、后序(postorder)三种遍历方式,对应题目 144.二叉树的前序遍历 、94. 二叉树的中序遍历 、145. 二叉树的后序遍历。
前中后,指的是根节点相对于左右结点的访问顺序
先序:考察到一个节点后,即刻输出该节点的值,并继续遍历其左右子树。(根左右)
中序:考察到一个节点后,将其暂存,遍历完左子树后,再输出该节点的值, ...