怒刷leetcode的题目(1)237、104、136、100
来源:互联网 发布:ubuntu安装汉语输入法 编辑:程序博客网 时间:2024/06/07 00:54
https://leetcode.com/problemset/algorithms/上面的题目,每天做几道题目,大体从准确率高至低做下去
编程语言为c语言,因为跑的最快…
237Delete Node in a Linked List47.8%EasyWrite a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is 1 -> 2 -> 3 -> 4
and you are given the third node with value 3
, the linked list should become 1 -> 2 -> 4
after calling your function.
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */void deleteNode(struct ListNode* node) { if(node->next != NULL){ node->val = node->next->val; node->next=node->next->next; }}删除给定的节点,只需要将当前节点的val改成下个节点的值,这时候相当于有两个相同值的节点,再将当前节点的next指针指向下下个节点,也就是跳过第二个相同的节点就好了。
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int maxDepth(struct TreeNode* root) { if(root == NULL) // 递归出口 return 0; int depthLeft = maxDepth(root->left); int depthRight = maxDepth(root->right); return depthLeft > depthRight ? (depthLeft + 1) : (depthRight + 1); }求二叉树的深度,使用递归的思想,将root想做普通节点,任何节点的深度都是左右节点较深的那个值+1,除了树叶(深度为0,也是递归的结束条件)
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
int singleNumber(int* nums, int numsSize) { if (nums == 0 || numsSize < 1) return 0; int key = nums[0]; for (int i = 1; i < numsSize; ++i) { key ^= nums[i]; } return key; }难点在于数组规模增大,运行时间只能线性增长。
将数组的所有元素进行异或运算,相同的元素异或等于0,唯一的元素与0异或等于自己。
100Same Tree41.5%EasyGiven two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */bool isSameTree(struct TreeNode* p, struct TreeNode* q) { if(!p && !q) return true; //NULL together, the same,skip the remaining code if(!p || !q) return false; //one is NULL but the other is not return (p->val == q->val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right); }跟104题类似,使用递归的思想,二叉树相同,意味着从根节点开始,必须符合对应节点的值相同+左节点为根节点的树相同+右节点为根节点的树相同
先判断!p&&!q同时为树叶节点,两个为相同的树
如果不同时为树叶节点,则判断两者是否有一方是树叶节点,如果是,则他们不是一样的树
对根节点运行算法就可以得出结果
- 怒刷leetcode的题目(1)237、104、136、100
- leetcode上数据库的题目(1)
- LeetCode || 未完成的题目
- LeetCode的Easy题目
- leetcode题目解答报告(1)
- LeetCode题目1~3
- leetcode题目总结<1>
- LeetCode题目1
- leetcode题目 1
- LeetCode所有题目的代码
- leetCode的数独题目
- 我的LeetCode 题目汇总
- leetcode部分题目(C++)
- 怒刷leetcode题目(2)235,191,141,217,
- 怒刷leetcode题目(3)226,83,142,86
- LeetCode高频题目(100)汇总-Java实现
- leetcode题目
- LeetCode 题目
- 杜君立:作为美国精神的乔布斯
- navicat premium 连接sqlserver 端口号配置
- SQL 把一个数据库里面的某张表里的数据插入到另外一个数据库里面的一张表
- org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart
- 【Linux】ubutun14.04配置JDK1.8
- 怒刷leetcode的题目(1)237、104、136、100
- adb被占用怎么办
- android 通过ApplicationInfo 从androidmanifest 中的application中读取信息。
- oracle中的varchar2存放汉字的问题总结
- Android 5.0.1 Layout_toLeftOf不生效
- [BZOJ1061][Noi2008]志愿者招募
- Nasm Intro - The Three Kinds of Operands & Conditional Instructions
- Java读取文件内容的几种方式
- 设计模式_装饰模式