![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试刷题
ccl_love_c
这个作者很懒,什么都没留下…
展开
-
面试题7:重建二叉树
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 明确: 1.二叉树的前序遍历序列中,第一个值是树的根结点的值。在中序遍历序列中,根结点的值在中间,左边是左子树的结点值,右边是右子树的结点值。 2.把序列划分为三部分,在二叉树的前序遍历和中序遍历中确定根结点的值、左子树结点的值和右子树结点的值。构建出根结点。 3.然后用同样...原创 2020-04-10 17:14:41 · 127 阅读 · 0 评论 -
面试题36:二叉搜索树与双向链表
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 递归方法: 思路: 1、把树分成三部分:根结点、左子树、右子树。把左子树中最大的结点与根结点连接起来,然后把右子树中最小的结点与根结点连接起来。 2、设置一个pre指针,指向前一个遍历的结点,使当前结点与pre指针指向的结点连接起来。 3、转换后的链表是排好序的,所以要用...原创 2020-04-09 21:04:32 · 82 阅读 · 0 评论 -
面试题33:二叉搜索树的后序遍历序列
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 明确: 在后序遍历序列中,数组数字可以分为三部分。第一部分是树的根结点的值,它是数组中最后一个数字。第二部分是左子树结点的值,它都比根结点的值小。第三部分是右子树结点的值,它都比根结点的值要大。 class Solution { public: ...原创 2020-04-07 16:59:32 · 81 阅读 · 0 评论 -
面试题34:二叉树中和为某一值的路径
题目: 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路: 先序遍历二叉树的结点,当访问某一结点时,把该结点添加到路径中,并且累加该路径的值。 1、当该结点是叶子结点,并且路径值等于输入的整数,把路径打印出来。 2、当前结点不是叶子结点时,左右子结点不为空时继续访问它们。 3、当前结点访问完...原创 2020-04-05 22:04:27 · 83 阅读 · 0 评论 -
面试题27:镜像二叉树
题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 镜像二叉树的特点: 两棵树的根结点相同,但左右两结点交换了位置。 思路: 1.先判断当前根结点是否为空。 2.再判断根结点的左、右两子结点。当它们同时为空时说明当前根结点是叶子结点,不用操作。它们不同时为空时,交换两左右子树。 3.当左子结点不为空时,递归调用左子树。同理调用右子树。 注意:交换的不只是两结点的值,交换的是左右...原创 2020-04-03 10:15:57 · 108 阅读 · 0 评论 -
面试题28:对称的二叉树
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 判断一颗二叉树是否对称 1.若他的根结点为空,则是对称对称二叉树。 2.若他的根结点不为空,若他的左右子树对称,则是对称二叉树。 3.他左子树的左子树和右子树的右子树相等,左子树的右子树和右子树的左子树相等时,就对称。 当你想要实现一个功能A,但是实现A时要用到A实现后的功能,...原创 2020-04-02 22:46:58 · 66 阅读 · 0 评论