星空之梦
ADream__
这个作者很懒,什么都没留下…
展开
-
整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。#include&...原创 2018-11-23 21:01:17 · 106 阅读 · 0 评论 -
相交链表(LeetCode 简单篇160)
编写一个程序,找到两个单链表相交的起始节点。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。/** * Definition for singly-linked list. * struct ListNode { * int val; * ...原创 2019-01-02 14:37:57 · 153 阅读 · 0 评论 -
根据二叉树创建字符串(LeetCode简单篇606题)
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。void _tree2str(struct TreeNode* t,char* str){ if(t == NULL) return ; char buff[12];//12是数字的位数,编译...原创 2019-01-06 17:01:31 · 409 阅读 · 0 评论 -
平衡二叉树(LeetCode简单篇110题)
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。解题思路:用时间复杂度为O(n)的算法先判断根结点,如果只有一个,则为1;否则看左子树的深度减去右子树的深度等不等于1;如果等于1,那么这颗二叉树就是平衡二叉树;它的深度等于左右子数最大的深度+1;bool _isBalanced(stru...原创 2019-01-05 16:52:10 · 2265 阅读 · 1 评论 -
移除元素(LeetCode 简单篇27题)
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。解题思路:定义两个指针,一个快指针,一个慢指针,当快指针的值等于val,把它给慢指针,最后返回慢指针;int removeEle...原创 2019-01-05 14:50:34 · 192 阅读 · 0 评论 -
另一个数的字数(LeetCode简单篇572题)
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s:3/ 4 5/ 1 2给定的树 t:4/ 1 2返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。示例 2:给定的树 s:3/ 4...原创 2018-12-11 19:36:14 · 225 阅读 · 0 评论 -
求二叉数的前序,中序遍历(leetCode144题,94题)
1.给定一个二叉树,返回它的前序遍历。示例 :输入 : [1, null, 2, 3]12/3输出:[1, 2, 3]int treeSize(struct TreeNode* root)//求二叉树中所有的结点{ if (root == NULL) return 0; else return treeSize(root->left) + treeSize...原创 2018-12-11 19:14:50 · 225 阅读 · 0 评论 -
复制带随机指针的链表(LeetCode中级篇138题)
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深度拷贝。/** * Definition for singly-linked list with a random pointer. * struct RandomListNode { * int label; * struct RandomListNode *...原创 2018-12-14 18:58:19 · 248 阅读 · 0 评论 -
合并两个有序链表(LeetCode简单篇21题)
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->41.找到新链表的头结点,两个链表中小的结点作为新链表的头结点;2.逐步比较两个链表中剩余的元素进行比较,从大到小插入新链表中;struct ListNode...原创 2018-12-06 18:30:18 · 206 阅读 · 0 评论 -
链表的中间结点(LeetCode简单篇876题)
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.v...原创 2018-12-06 15:18:30 · 519 阅读 · 0 评论 -
回文链表(LeetNode简单篇234题)
请判断一个链表是否为回文链表。输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题解题思路:对于O(n)来说,可以把整个链表全部反转一遍存到一个链表中,然后依次比较每个结点的值,如果值相等则为一个回文链表。对于O(1)来说,可以用下列这种办法:1.找...原创 2018-12-08 15:35:33 · 146 阅读 · 0 评论 -
反转链表(LeetCode简单篇206题)
反转一个单链表示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLstruct ListNode* reverseList(struct ListNode* head){ struct ListNode* cur原创 2018-12-04 18:13:51 · 167 阅读 · 0 评论 -
移除链表元素(LeetCode简单篇203题)
删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5结构体的框架struct ListNode {int val;struct ListNode *next;};这道题用的方法是用两个指针变量,一个指针往后走找x,找到后...原创 2018-12-04 17:12:05 · 217 阅读 · 0 评论 -
删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。示例 2:给定 nums = [0,0,1,1,1,2,2,3...原创 2018-11-26 21:57:32 · 118 阅读 · 0 评论 -
回文数
回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。bool...原创 2018-11-24 21:05:56 · 151 阅读 · 0 评论 -
实现 strStr() 函数
实现 strStr() 函数给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “b...原创 2018-11-25 23:23:13 · 359 阅读 · 0 评论 -
两数之和---给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。
1.给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]重要一点(关于在函数中static的用法)第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。第二、static修饰全局变量的时候,这个全局变量只能在本文件...原创 2018-11-22 19:06:28 · 12415 阅读 · 3 评论 -
环形链表 II(LeetCode中等篇142题)
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。/** * Definition for singly-linked list. * struct ListNode { * i...原创 2019-01-02 15:24:10 · 216 阅读 · 0 评论