树
hebastast
这个作者很懒,什么都没留下…
展开
-
Serialize and DeSerialize
class Solution {private: void serializehelper(TreeNode *root,vector<int> &v) { if(root==NULL) { v.push_back(0x23333333); return; } v.push原创 2017-03-15 22:20:45 · 368 阅读 · 0 评论 -
95. Unique Binary Search Trees II
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-23 19:54:36 · 308 阅读 · 0 评论 -
98. Validate Binary Search Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-06-04 22:34:30 · 279 阅读 · 0 评论 -
117. Populating Next Right Pointers in Each Node II
/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *right, *next; * TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {原创 2016-05-22 11:18:51 · 254 阅读 · 0 评论 -
116. Populating Next Right Pointers in Each Node
/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *right, *next; * TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {原创 2016-05-22 11:00:20 · 262 阅读 · 0 评论 -
107. Binary Tree Level Order Traversal II
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-22 10:43:49 · 322 阅读 · 0 评论 -
102. Binary Tree Level Order Traversal
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-22 10:28:53 · 266 阅读 · 0 评论 -
114. Flatten Binary Tree to Linked List
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-22 09:58:06 · 259 阅读 · 0 评论 -
99. Recover Binary Search Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-18 11:01:17 · 269 阅读 · 0 评论 -
110. Balanced Binary Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-18 10:12:34 · 233 阅读 · 0 评论 -
132. Palindrome Partitioning II
class Solution {private: vector<vector<string>> result; vector<string> curlist; bool judge(string &s,int start,int end) { if(end==start) return true; while(end>start)原创 2016-07-28 20:37:27 · 282 阅读 · 0 评论 -
101. Symmetric Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-09-10 14:45:22 · 319 阅读 · 0 评论 -
109. Convert Sorted List to Binary Search Tree
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *//** * Definition for a binary tree node.原创 2016-09-14 10:29:45 · 239 阅读 · 0 评论 -
404. Sum of Left Leaves
class Solution {private: int count=0; void sumhelper(TreeNode* root,bool isleft) { if(!root) return; if(isleft&&!root->left&&!root->right) count+=ro原创 2017-01-17 10:22:39 · 264 阅读 · 0 评论 -
315. Count of Smaller Numbers After Self
class Solution {private: struct Node{ int val; int lesscount; int dup; Node *left; Node *right; }; Node *insert(int num,Node *root,vector<int> &ret,原创 2016-11-26 15:18:34 · 302 阅读 · 0 评论 -
310. Minimum Height Trees
class Solution {public: vector<int> findMinHeightTrees(int n, vector<pair<int, int>>& edges) { vector<int> ret; if(edges.size()==0)//只有一个点 没有边 { ret.push_back(0原创 2016-11-22 11:12:00 · 290 阅读 · 0 评论 -
297. Serialize and Deserialize Binary Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-11-16 10:50:50 · 267 阅读 · 0 评论 -
222. Count Complete Tree Nodes
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-10-20 11:58:24 · 271 阅读 · 0 评论 -
134. Gas Station
class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int start=gas.size()-1; int end=0; int sum=gas[start]-cost[start]; while(start原创 2016-10-04 10:56:56 · 265 阅读 · 0 评论 -
257. Binary Tree Paths
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-10-24 10:55:51 · 257 阅读 · 0 评论 -
200. Number of Islands
DFS解决class Solution {private: void DFS(vector<vector<char>>&grid,int x,int y)//把x,y这个位置置'0' 并dfs搜索他的四个方向 只要为1都变成0 { grid[x][y]='0'; if(x>0&&grid[x-1][y]=='1') DFS(原创 2016-10-12 19:47:13 · 287 阅读 · 0 评论 -
199. Binary Tree Right Side View
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-10-12 15:42:24 · 223 阅读 · 0 评论 -
103. Binary Tree Zigzag Level Order Traversal
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-17 10:01:31 · 264 阅读 · 0 评论 -
106. Construct Binary Tree from Inorder and Postorder Traversal
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-16 11:48:45 · 261 阅读 · 0 评论 -
105. Construct Binary Tree from Preorder and Inorder Traversal
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-16 11:37:38 · 218 阅读 · 0 评论 -
leetcode-Lowest Common Ancestor of a Binary Search Tree
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if (root ==原创 2016-03-04 21:38:19 · 384 阅读 · 0 评论 -
leetcode Lowest Common Ancestor of a Binary Tree
从上到下搜索的过程中 如果搜索到了p或者q 或者到了 null 则返回p q 或者null 在回溯的过程中 如果左子树和右子树返回的都不是空 则说明当前节点就是最低祖先 返回当前节点 如果左子树或者右子树返回不是空 当节点是p q中的一个的话 则说明 p是q的祖先或者q是p的祖先 返回当前节点 如果左右子树有一个返回的不是空的话 则将非空的那个返回值返回 如果左右子树返回的都原创 2016-03-04 21:14:47 · 290 阅读 · 0 评论 -
CityHorizon-线段树
题目的大意是: 在一条水平线上有 N 个建筑物,建筑物都是长方形的,且可 以互相遮盖。给出每个建筑物的左右坐标值 Ai,Bi 以及每个建筑物的高度 Hi, 要计算出这些建筑物总共覆盖的面积。 可以将建筑物投影到x轴上 就行成了一段段线段 在线段的基础上要添加权值 权值体现高度的大小 如果同一个线段被覆盖了多次 则以权值大的为准 返回线段的长度乘以权值就可以得到整个建筑物的面积 如果原创 2016-01-25 09:55:01 · 501 阅读 · 0 评论 -
Left_Leaning RedBlack Tree
Left-Leaning RedBlack Tree 是一种redblack tree 它总是喜欢把红节点放在左子树上 它符合红黑树的所有性质 (1) 所有的节点要么是红色的要么是黑色的 (2) 红色节点的子节点是黑色节点 (3) 叶子节点(NIL)节点是黑色的 (4) 一个节点到任意一个叶子节点路径上的所有的黑色节点的个数是想等的 (5) 根节点为黑色节点 redblacktree原创 2015-11-15 10:58:49 · 750 阅读 · 0 评论 -
根据二叉树的先序和中序来构建二叉树
根据二叉树的先序和中序 来构建二叉树然后再输出二叉树的后序这是笔试题中常见的题目。 其实思想很简单 string pre 为先序的字符串 string in为中序的字符串 pre[0]为树根 找到pre[0]在in中的位置(下标从0开始)为index,则 index为左子树的长度 pre中下标1~index为左子树的先序 下标从index+1~最后为右字数的先序。in中下标0~index原创 2015-11-21 10:54:40 · 4002 阅读 · 1 评论 -
nyu 的AI课的调度问题
nyu 的AI课的课后习题 http://cs.nyu.edu/courses/spring12/CSCI-GA.2560-001/prog1.html 题目的大意是输入n个task 每个task都有time(完成时间) value(完成产生的价值) task可能会有先驱 打个比方就是 要先完成task1 才能去进行task2 给定一个targetvalue 和deadline(最后完成时原创 2015-11-24 16:31:48 · 632 阅读 · 0 评论 -
LEETCODE-Kth Smallest Element in a BST
题目很简单只要对BST进行一次inorder就行了class Solution {private: int value=0; int count = 0; bool findflag = false; void inOrder(TreeNode*root, int k) { if (root&&!findflag) {原创 2015-11-22 11:21:17 · 718 阅读 · 0 评论 -
leetcode invert-binary-tree
题目太容易了链接https://leetcode.com/problems/invert-binary-tree/ class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }public class Solutioninverttre原创 2015-11-22 22:22:04 · 381 阅读 · 0 评论 -
leetcode-Unique Binary Search Trees
题目的意思就是在有n个不相同元素的情况下 进行随机插入 组成一个BST 问有几种不相同的BST n=0 c[0]=1 空树 n=1 c[1]=1 只有一个节点的树 n=2 c[2]=c[0]*c[1]+c[1] *c[0]; 左子树有1个元素右子树有0个元素 左子树有0个元素 右子树有1个元素 n=3 c[3]=c[0]c[2]+c[1] c[1]+c[2] *c[0];左子树有0个原创 2015-11-21 15:58:56 · 427 阅读 · 0 评论 -
largestBSTSubtree
#include "stdafx.h"#include <iostream>#include "limits.h"using namespace std;typedef struct treenode{ struct treenode *l; struct treenode *r; int value;}TreeNode,*TreeNodePtr;bool res原创 2016-02-24 20:41:06 · 373 阅读 · 0 评论 -
binary-search-tree-iterator
https://leetcode.com/problems/binary-search-tree-iterator/ 利用非递归 中序遍历的思想class BSTIterator {private: stack<TreeNode*> s;public: BSTIterator(TreeNode *root) { while (!s.empty())原创 2016-02-29 21:24:42 · 418 阅读 · 0 评论 -
108. Convert Sorted Array to Binary Search Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-27 09:17:46 · 314 阅读 · 0 评论 -
111. Minimum Depth of Binary Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class原创 2016-05-16 10:44:12 · 203 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree
遍历所有可能的情况, 到了叶节点 则更新最大深度/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(原创 2016-05-16 10:16:15 · 254 阅读 · 0 评论 -
113. Path Sum II
遍历所有的路径 并将遍历的路径保存下来 遍历到叶子节点的时候 将满足条件的路径加入ret中 最后返回./** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x)原创 2016-05-16 09:59:16 · 225 阅读 · 0 评论