![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树遍历
文章平均质量分 77
Emperorist
患病者
展开
-
leetcode-完全二叉树
完全二叉树原创 2022-07-14 00:41:52 · 272 阅读 · 1 评论 -
面试题7-重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:通常树有如下几种遍历方式:前序遍历:先访问根结点,再访问左子结点,最后访问右子结点。中序遍历:先访问左子结点,再访问根结点,最后访问右子结点。后序遍历:先访问左子结点,再访问右子结点,最后访问根结点。本题为前序遍历和中序遍历,最少需要两种遍历方原创 2021-10-04 23:01:47 · 109 阅读 · 0 评论 -
面试题34-二叉树中和为某一值的路径
题目:给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。方法一:深度优先搜索注意到本题的要求是,找到所有满足从「根节点」到某个「叶子节点」经过的路径上的节点之和等于目标和的路径。核心思想是对树进行一次遍历,在遍历时记录从根节点到当前节点的路径和,以防止重复计算。我们可以采用深度优先搜索的方式,枚举每一条从根节点到叶子节点的路径。当我们遍历到叶子节点,且此时路径和恰为目标和时,我们就找到原创 2022-02-27 23:20:55 · 182 阅读 · 0 评论 -
面试题33-二叉搜索树的后序遍历序列
class Solution {public: vector<int>arr1,arr2; bool verifyPostorder(vector<int>& postorder) { int n=postorder.size(); return helper(postorder,n); } bool helper(vector<int>& postorder,int n) {原创 2022-02-23 08:08:49 · 400 阅读 · 0 评论 -
面试题28-对称的二叉树
题目请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。解题思路我们定义一种对称的遍历算法,即先遍历父节点,再遍历它的右子节点,最后遍历它的左子节点。通过比较二叉树的前序遍历序列和对称前序遍历序列来判断二叉树是不是对称的。如果两个序列是一样的,那么二叉树就是对称的。class Solution {public: bool isSymmetric(TreeNode* root) { return isSymmetric(root,原创 2022-02-18 00:27:41 · 571 阅读 · 0 评论 -
二叉树的四种遍历方式
中序遍历二叉树的中序遍历就是首先遍历左子树,然后访问当前节点,最后遍历右子树。对于下面的二叉树,中序遍历结果如下:直观来看,二叉树的中序遍历就是将节点投影到一条水平的坐标上。如图:二叉树结构 struct treenode { int val; treenode *left; treenode *right; treenode() : val(0), left(nullptr), right(nullptr) {} treenode(in原创 2022-02-16 15:56:07 · 9367 阅读 · 0 评论