![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
ZtCling
热爱代码,欢迎交流
展开
-
剑指 Offer 09. 用两个栈实现队列
题目解析: 用两个栈实现一个队列,简而言之就是要用两个栈实现先入先出的存取方法。 示例中的CQueue就是创建队列的意思 appenTail就是添加结点的意思 执行上述两个操作的时候输出空就可以 执行deleteHead时,如果没有可以取的就输出-1,如果有可以取的就输出取出的那个数字 基本思路: 定义两个栈,一个当作输入栈用于appendTail操作,一个当作输出栈用于deleteHead操作. 当进行deleteHead操作时,先判断输出栈是否为空,若输出栈为空,则将输入栈的所有数据..原创 2022-04-04 13:00:30 · 316 阅读 · 0 评论 -
剑指offer:105. 从前序与中序遍历序列构造二叉树
题目分析: 给了一个二叉树的前序遍历和后序遍历,让构建原本的二叉树,并返回其根节点 题目解析: 因为前序遍历preorder的顺序为:“根左右”,因此前序遍历的第一个数字必然为根节点root。 由题目可知此二叉树没有重复的元素,因此在中序遍历inorder的数组中可找到相同的根节点,因为中序遍历的顺序是:“左根右”,因此前面的元素都是左子树,后面的元素都是右子树。 用这种方法继续去递归深度遍历两数组,就可以得到原本的二叉树 细节优化: 中序遍历中对根节点进行定位时,一种...原创 2022-03-18 15:36:08 · 590 阅读 · 0 评论