摘要:
题目来源:《剑指offer》面试题58 题目:给定一个二叉树和其中一个节点,如何找出中序遍历顺序的下一个节点?树中的节点除了有两个分别指向左右子节点的指针以外,还有一个指向父节点的指针。 分析:有如下几种情况: 如果一个节点有右子树,那么它的下一个节点就是它的右子树中的最左子节点。 ... 阅读全文
摘要:
题目来源:《剑指offer》面试题27 题目:输入是一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新节点,只能调整树种节点指针的指向。二叉树节点的定义如下:struct BinaryTreeNode { int val; BinaryTreeNode* l... 阅读全文
摘要:
题目:输入一个整数数组,判断该数组是不是二叉搜索树的后序遍历序列的结果,如果是,则返回true,如果不是则返回false。假设输入的数组的任意两个数字都互不相同。 分析:在后序遍历得到的序列中,最后一个数字是根节点的值。数组中前面的数字可以分为两个部分:第一部分是左子树节点的值,它们都比根节点... 阅读全文
摘要:
从上往下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 从上到下打印二叉树的规律:每一次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的打印操作,直到队列中所有的节点都被打印出来为止。 struct... 阅读全文
摘要:
题目来源:《剑指offer》面试题18 输入两颗二叉树A和B,判断B是不是A的子结构。二叉树的节点定义如下:struct BinaryTreeNode { int value; BinaryTreeNode* left; BinaryTreeNode* ri... 阅读全文
摘要:
相关题目:《剑指offer》面试题7templateclass Queue { public: Queue(); ~Queue(); void Push(const T& value) { s1.push(value): } void... 阅读全文
摘要:
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest... 阅读全文
摘要:
内核态与用户态是操作系统的两种运行级别,一个运行在内核模式的进程可以执行指令集中的任何指令,并且可以访问系统中任何存储器位置。用户模式中的进程不允许执行特权指令,比如停止处理器、改变模式位,或者发起一个I/O操作。也不允许用户模式中的进程直接引用地址空间中内核区内的代码和数据。 换句话说,当一... 阅读全文
摘要:
Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree: 1 / \2 3 \ 5All root-to-leaf paths are:["1->... 阅读全文
摘要:
Given a collection of numbers that might contain duplicates, return all possible unique permutations. For example,[1,1,2] have the following unique pe... 阅读全文