![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
watchli
这个作者很懒,什么都没留下…
展开
-
从上往下打印二叉树
从上往下打印二叉树 从上往下打印出二叉树的每个节点,同层节点从左至右打印。可以利用图的BFS的思想,借助一个双端队列deque.class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> rst; if(root==NULL)原创 2017-03-17 18:48:30 · 130 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列 题目要求判断数组是否为二叉搜索树的后序遍历序列。 二叉搜索树存在的关系:左子树<根节点<右子树 所以后序遍历的时候,根节点在数组序列的末尾,根节点的左子树排在序列的前段,右子树排在序列的中段。 根据这一规律可以判断是否为后序遍历的序列。class Solution { public: bool VerifySquenceOfBST(vector<int> s原创 2017-03-27 19:52:26 · 193 阅读 · 0 评论 -
树的子结构
树的子结构 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。 这是一道剑指offer的题目,觉得题目挺有意思,可以很好得利用递归的思想。/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x)原创 2017-03-13 16:54:18 · 198 阅读 · 0 评论 -
二叉树的镜像
二叉树的镜像 class Solution { public: void Mirror(TreeNode *pRoot) { if(pRoot==NULL){ return ; } TreeNode *temp=pRoot->left; pRoot->left=pRoot->right;原创 2017-03-14 17:06:43 · 124 阅读 · 0 评论 -
栈的压入、弹出序列
栈的压入、弹出序列 问题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)class Solution { public: bool IsPo原创 2017-03-15 16:05:44 · 141 阅读 · 0 评论