
每日一题
草根学僧
意在记录自己的收获成果
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
合并链表和求1+2+...+n不用循环、乘除法、循环、条件判断、选择相关的关键字
合并链表这里就不说了,稍微看下代码应该就可以懂了 递归:ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { // write your code here if(l1==NULL||l2==NULL) return l1==NULL?l2:l1; ListNode* hea原创 2017-07-13 17:04:03 · 379 阅读 · 0 评论 -
二叉树前中后序/递归/非递归遍历/求链表差集
实现二叉树的前序/中序/后序非递归遍历。 前序: 递归:class Solution {public: /** * @param root: The root of binary tree. * @return: Preorder in vector which contains node values. */ void preorder(TreeN原创 2017-07-26 09:28:01 · 345 阅读 · 0 评论 -
判断平衡二叉树/二叉树镜像/一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中
判断一棵二叉树是否是平衡二叉树方法一:class Solution {public: /** * @param root: The root of binary tree. * @return: True if this Binary tree is Balanced, or false. */ int depth(TreeNode* root)原创 2017-07-25 18:42:19 · 413 阅读 · 0 评论 -
实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) /查找一个字符串中第一个只出现两次的字符
实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) class Stack{public: void push(const int val) { st.push(val); if (st1.empty()) { st1.push(val);原创 2017-07-19 19:48:21 · 457 阅读 · 0 评论 -
使用两个栈实现一个队列/使用两个队列实现一个栈/空格替换
使用两个栈实现一个队列class MyQueue {public: stack<int> stack1; stack<int> stack2; MyQueue() { // do intialization if necessary } void push(int element) { // write your code he原创 2017-07-19 16:46:12 · 269 阅读 · 0 评论 -
求二叉树叶子节点的个数/求二叉树第k层的节点个数/一个数组中有一个数字的次数超过了数组的一半,求出这个字符
求二叉树叶子节点的个数int getLeafNode(Node* root) { if(NULL == root) return 0; if(NULL == root->left && NULL == root->right) return 1; return getLeafNode(root->left) + getLea原创 2017-07-22 23:34:37 · 423 阅读 · 0 评论 -
实现一颗二叉树的层序遍历/给定一个整数N,那么N的阶乘N!末尾有多少个0呢
实现一颗二叉树的层序遍历class Solution { /** * @param root : The root of binary tree. * @return : buttom-up level order a list of lists of integer */public: vector<vector<int>> levelOrderBo原创 2017-07-21 20:24:13 · 361 阅读 · 0 评论 -
元素出栈、入栈顺序的合法性/计算一个整数二进制位中1的个数。
元素出栈、入栈顺序的合法性。如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。 bool isLegally(const vector<int>& input,const vector<int>& output) { stack<int> st; int原创 2017-07-21 20:13:54 · 447 阅读 · 0 评论 -
子树/最近公共祖先
判断一颗二叉树是是否是另一颗树的子树class Solution {public: bool test(TreeNode* T1,TreeNode* T2) { if(T1==NULL && T2==NULL) return true; if(T1==NULL||T2==NULL||T1->val!=T2->val)原创 2017-07-30 19:24:18 · 391 阅读 · 0 评论 -
O(1)时间复杂度删除链表节点/复制带随机指针的链表
在O(1)时间复杂度删除链表节点直接将需要删除节点的写一个节点的val直接赋值给需删除节点,然后删除他的next即可class Solution {public: /** * @param node: a node in the list should be deleted * @return: nothing */ void deleteNode(L原创 2017-07-17 20:02:50 · 394 阅读 · 0 评论 -
判断两个链表是否相交,若相交,求交点,若带环呢/fork继承问题
判断两个链表是否相交,若相交,求交点,若带环呢这里只贴判断是否相交代码(无环) 有环或不懂点这里class Solution {public: /** * @param headA: the first list * @param headB: the second list * @return: a ListNode */ ListNod原创 2017-07-16 22:59:59 · 275 阅读 · 0 评论 -
链表带环问题/设计一个类不能被继承/设计一个类只能在堆(栈)上创建对象
判断链表是否带环?若带环求环的长度?若带环求环的入口点?class Solution {public: /** * @param head: The first node of linked list. * @return: The node where the cycle begins. * if there is no cycle,原创 2017-07-15 15:37:40 · 274 阅读 · 0 评论 -
逆置、翻转链表/查找单链表的倒数第k个节点/A+B不使用四则运算++ -- 等
逆置/反转单链表非递归:class Solution {public: /** * @param head: The first node of linked list. * @return: The new head of reversed linked list. */ ListNode *reverse(ListNode *head) {原创 2017-07-14 15:32:00 · 327 阅读 · 0 评论