数据结
I_l_I
这个作者很懒,什么都没留下…
展开
-
Leetcode—328奇偶链表
题目说明:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5-&...原创 2018-10-19 19:36:07 · 294 阅读 · 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-10-15 21:25:38 · 535 阅读 · 0 评论 -
Leetcode:203 移除链表元素
删除链表中等于给定值 val 的所有节点。示例:输入:1->2->6->3->4->5->6, val = 6输出:1->2->3->4->5这个问题大多数情况我们都可以考虑到,但是有的情况不容易想到,例如:1—>NULL, val = 1当删除1后,链表为空,所以我们需要在链表的头...原创 2018-10-15 21:11:04 · 276 阅读 · 0 评论 -
牛客网:判断两棵树是否相同
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 ...原创 2018-10-12 14:54:12 · 426 阅读 · 0 评论 -
LeetCode:二叉树减枝(C++)
题目:给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。返回移除了所有不包含 1 的子树的原二叉树。( 节点 X 的子树为 X 本身,以及所有 X 的后代。)示例1:输入: [1,null,0,0,1]输出: [1,null,0,null,1]解释:只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。说明:给定的二叉树最多有 1...原创 2018-09-21 17:28:53 · 377 阅读 · 0 评论 -
Leetcode:删除链表中的节点
请编写一个函数,使其可以删除链表中的非尾节点,你将只被给定你要删除的节点,例:现在有一个链表——head=[4 ,5,1,9]删除5这个节点原4->5->1->9->NULL删除后4->1->9->NULL说明:1.链表至少包含两个节点2.链表中所有的节点都是唯一的3.给定的节点是一个非尾节点并且一定是链表中的一个有效节点4.不要从你的...原创 2018-09-18 10:33:21 · 352 阅读 · 0 评论 -
剑指offer:翻转二叉树
题目描述:操作给定的二叉树,将其变换为源二叉树的镜像二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / ...原创 2018-09-17 15:40:35 · 145 阅读 · 0 评论 -
数据结构Hash--开放定址法
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数 开放定制法也是处理构造哈希表中...原创 2018-06-02 13:51:25 · 1438 阅读 · 0 评论 -
归并排序心得
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 #include<stdio.h>#include<Windows.h>#in...原创 2018-05-29 23:19:09 · 420 阅读 · 0 评论 -
快速排序
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 1.左右指针法 在数组的左和右分别定义一个指针,begin指针从前往后遍历找到一个比key大的数据停止,end从后往前遍历...原创 2018-05-28 15:28:55 · 605 阅读 · 0 评论 -
Leetcode:分隔链表
题目:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5/** * Definition for singly-l...原创 2018-10-21 23:30:04 · 128 阅读 · 0 评论