数据结构和算法
记录数据结构和算法历程
CoffeeAnd
这个作者很懒,什么都没留下…
展开
-
【剑指Offer】【23】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。
题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 思路: 一个后序遍历序列,最后一个遍历的结点,是父节点 对于二叉搜索树来说,左子树的所有数<父节点<右子树所有数 这道题,我们假设是某二叉搜索树的后序遍历的结果 去验证,只要任意不符合,则不是 如果递归完成后,没有不符合,则是 如何区分左右子树呢 使用while循环,从当前子序列开始++,当sequence[n]小于sequence[当前子序原创 2020-11-07 22:51:32 · 323 阅读 · 0 评论 -
【剑指Offer】【26】输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路: 可以知道,二叉搜索树的中序遍历,得到一个排好序的输出 在中序遍历中 将当前结点的左孩子指向上一个结点 将上一个结点的右孩子只想当前结点 中序遍历完成后,二叉搜索树遍转换成了排好序的双向链表 public class Solution { public TreeNode Convert(TreeNode pRootOfTree) { if (pRootOfTree原创 2020-11-07 21:39:54 · 183 阅读 · 0 评论