题目链接地址: http://ac.jobdu.com/problem.php? pid=1368 题目1368:二叉树中和为某一值的路径 时间限制:1 秒内存限制:32 兆特殊判题:否提交:2252解决:562 题目描写叙述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的全部路径. 路径定义为从树的根结点開始往下一直到叶结点所经过的结点形成一条路径. 输入: 每一个測试案例包含n+1行: 第一行为2个整数n.k(1<=n<=10000).n表示结点的个数.k表示要求的路径和…
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推.   方法1: 正常层次遍历,利用普通队列.逢奇数行(从0算起)就把该层结果逆序. class Solution { public: vector<vector<int> > Print(TreeNode* pRoot) { if(pRoot==nullptr){return {};} queue<TreeNode*>…
#include"iostream" #include"stdio.h" using namespace std; ; ; template<typename T>class StackWithMin { public: void push(const T& value); void pop(); T min(); private: ; int minNum=INF; T* mData=new T[MAXN]; T* mMin=new T[MAX…
问题描述: 输入一个整数n,求1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11,12,1一共出现了5次. 思路:(不考虑时间效率的解法,肯定不是面试官期望的) 直观想法:累加1到n中每个整数中1出现的次数. 每个整数中1出现的次数可以由除以10和模10来计算得到. 代码如下: boolean invalidInput = false; //不考虑时间效率的解法 public int NumberOf1Between1AndN_Soluti…
void BFSLayer(BinaryTreeNode* pRoot) { if(pRoot==nullptr) return; queue<BinaryTreeNode*> pNode; ,nextLayer=; pNode.push(pRoot); while(!pNode.empty()) { BinaryTreeNode* pFront=pNode.front(); cout<<pFront->m_Value<<' '; pNode.pop(); cur…
void BFS(BinaryTreeNode* pRoot) { if(pRoot==nullptr) { cout<<"empty binary tree!"<<endl; return; } queue<BinaryTreeNode*>pNode; pNode.push(pRoot); while(!pNode.empty()) { BinaryTreeNode* pFront=pNode.front(); pNode.pop(); cout&…
一.题目:包含Min函数的栈 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数.在该栈中,调用min.push及pop的时间复杂度都是O(1). 这里我们要实现的就是min.push以及pop三个方法: public class MinInStack<T> where T : struct { private Stack<T> dataStack; private Stack<T> minStack; public MinInStack()…
思路: 通过增加一个辅助栈保存每个状态对应的最小值.栈实现的不完整,应该还包含empty()等常规函数. #include <iostream> #include <stack> using namespace std; template <typename T> class StackWithMin { public: void push(const T& value); void pop(); T getMin(); private: stack<T&…
#include"iostream" #include"stdio.h" using namespace std; void PrintMatrixInCircle(int** matrix,int rows,int columns,int start) { -start; -start; for(int i=start;i<=endCol;i++) cout<<matrix[start][i]<<' '; cout<<en…
二叉树的先序,中序,后序如何遍历,不在此多说了.直接看题目描述吧(题目摘自九度oj剑指offer面试题6): 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为一个整数n(1<=n<=1000):代表二叉树的节点个数. 输入的…