Decode Ways

摘要: class Solution {public: int numDecodings(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function if(s==""||s[0]=='0') return 0; int count = s.length(); int pre = 1; int cur = 1; int code; for(int i = ... 阅读全文
posted @ 2013-09-22 13:26 邪灵天使 阅读(135) 评论(0) 推荐(0) 编辑

Valid Parentheses(括弧匹配)

摘要: class Solution {public: bool isValid(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function stack mystack; int count = s.length(); for(int i = 0;i < count;i++) { if(s[i]=='('||s[i]=='{'||s[i]=='[') ... 阅读全文
posted @ 2013-09-20 21:56 邪灵天使 阅读(128) 评论(0) 推荐(0) 编辑

Pascal's Triangle

摘要: class Solution {public: vector > generate(int numRows) { // Start typing your C/C++ solution below // DO NOT write int main() function vector pre; vector temp; vector >result; if(numRows<=0) return result; temp.push_back(1); result.pu... 阅读全文
posted @ 2013-09-20 21:43 邪灵天使 阅读(129) 评论(0) 推荐(0) 编辑

Construct Binary Tree from Inorder and Postorder Traversal

摘要: 后序与中序得原二叉树,与上篇类似。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *buildTree(vector &inorder, vector &postorder) { // Start typ... 阅读全文
posted @ 2013-09-13 09:46 邪灵天使 阅读(133) 评论(0) 推荐(0) 编辑

Construct Binary Tree from Preorder and Inorder Traversal

摘要: 已知前序遍历和中序遍历可以得到原二叉树。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *buildTree(vector &preorder, vector &inorder) { // Start t... 阅读全文
posted @ 2013-09-13 00:26 邪灵天使 阅读(159) 评论(0) 推荐(0) 编辑

Binary Tree Zigzag Level Order Traversal

摘要: 题目的意思是z字形遍历二叉树,代码有点冗余希望大牛么赐教,大概意思是要不从左到右遍历存入栈中,要不从右至左存入栈中,为了统一操作新建了一个类似头节点的树节点。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector > zigzag... 阅读全文
posted @ 2013-09-12 23:36 邪灵天使 阅读(191) 评论(0) 推荐(0) 编辑

Recover Binary Search Tree

摘要: 题目意思为一个二叉搜索树,有两个元素位置颠倒了,现在让你把它还原,但是题目要求空间复杂度O(1),我们知道二叉搜索树的中序遍历是有序的,那么利用这一点,找到第一个无序的地方,记录为first,第二个为second,这样就是常量空间复杂度了,注意有一种情况是刚好两个相邻的颠倒顺序。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), rig... 阅读全文
posted @ 2013-09-12 16:38 邪灵天使 阅读(93) 评论(0) 推荐(0) 编辑

Validate Binary Search Tree 验证是二叉树否为搜索树

摘要: /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private: vector inorder; public: bool isValidBST(TreeNode *root) { // Start typing your C/C+... 阅读全文
posted @ 2013-09-12 15:51 邪灵天使 阅读(103) 评论(0) 推荐(0) 编辑

Same Tree

摘要: /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool isSameTree(TreeNode *p, TreeNode *q) { // Start typing your C/C++ solution below ... 阅读全文
posted @ 2013-09-12 15:30 邪灵天使 阅读(143) 评论(0) 推荐(0) 编辑

Symmetric Tree

摘要: /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool isSymmetric(TreeNode *root) { // Start typing your C/C++ solution below // ... 阅读全文
posted @ 2013-09-11 17:39 邪灵天使 阅读(137) 评论(0) 推荐(0) 编辑