[LeetCode]Copy List with Random Pointer
    
            
摘要:题目:Copy List with Random Pointer A linked list is given such that each node contains an additional random pointer which could point to any node in the
        
阅读全文
 
        
            
    线性表
    
            
摘要:线性表定义 线性表:由零个或多个数据元素组成的有限序列。 注意: 1.线性表是一个序列。 2.0个元素构成的线性表是空表。 3.线性表中的第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继。 4.线性表是有长度的,其长度就是元素个数,且线性表的元素个数是有限的,也就是说,线性表的长
        
阅读全文
 
        
            
    [LeetCode]Odd Even Linked List
    
            
摘要:题目:Odd Even Linked List Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the
        
阅读全文
 
        
            
    [LeetCode]Reverse Linked List
    
            
摘要:题目:Reverse Linked List 逆置单链表。 思路:递归。 递归后,如何逆置头结点? 因为头结点的下一个节点经过递归逆置后会变成最后一个节点,所以,实际上是知道返回的新链表的最后一个节点的。这样就可以简单的逆置了。 注意:要判断只有一个节点的情况。 思路:非递归。
        
阅读全文
 
        
            
    [LeetCode]Merge Two Sorted Lists
    
            
摘要:题目:Merge Two Sorted Lists 合并两个单链表。 思路: 同时遍历两个单链表,比较每个值,较小的取下来放到新的链表的尾部。 注意:判断空链的情况 题目:Merge k Sorted Lists 合并k个单链表。 思路: 设置k个链表指针分别通过这些指针来遍历着k个链表;但是不能像
        
阅读全文
 
        
            
    [LeetCode]Remove Element
    
            
摘要:下面是LeetCode中数组链表的删除操作的题目: 题目:Remove Element 删除数组中给定的值的所有元素,返回数组新的大小。 思路: 遍历数组,当找到该元素时,和最后的元素交换,删除最后的元素; 注意:交换并删除最后元素后,位置坐标不应该增加,还需要判断交换过来的原最后的元素是否等于给定
        
阅读全文
 
        
            
    [LeetCode]Insertion Sort List
    
            
摘要:题目:Insertion Sort List 对链表进行插入排序。 注意: 1.插入头部和插入其他位置需要区分开处理; 2.可以考虑稳定的排序; 思路: 基本的思路就是每次从原链表按顺序取一个节点将它查到已序的新链表的合适的位置。 还有链表的归并排序:http://www.cnblogs.com/y
        
阅读全文
 
        
            
    [LeetCode]Sort List
    
            
摘要:题目:Sort List 对链表排序; 要求:时间复杂度O(nlogn),空间复杂度O(1) 考虑使用归并排序。 归并排序的思想:先将它划分成k各部分每个部分排好序后,再两两合并,知道所有的合并到一起,就排好序。 由于要求空间复杂度O(1),所以不能递归。 下面的实现是初始步长为2时的归并排序的情况
        
阅读全文
 
        
            
    [LeetCode]LRU Cache
    
            
摘要:题目:LRU Cache 操作系统中页面置换算法中有LRU算法(最近最久未用算法),其算法原理如下: 每个页面调入内存时,会有一个记录当前页面距离最近一次访问的时间间隔。 当每次访问页面时,如果页面已经在内存中,就将该页面对应的时间标志清空,其他的标志加一; 如果当前页面不在内存中且内存中没有空闲的
        
阅读全文
 
        
            
    [LeetCode]Linked List Cycle
    
            
摘要:题目:Linked List Cycle 判断一个单链表中是否有环,要求常量空间复杂度; 思路: 使用两个指针同时从链表表头开始移动,一个移动一步,一个移动两步,直到两个指针重合或某一指针指向链尾。 两个指针重合则单链表有环存在,否则没有。 第二个指针以第一个指针的两倍的速度移动,而第一个指针每次移
        
阅读全文
 
        
            
    [LeetCode]Reorder List
    
            
摘要:题目:Reorder List 首尾重新结合形成新的链表; 要求:不能改变链表的元素,空间复杂度O(1) 题目意思: 将链表L0→L1→…→Ln-1→Ln重排变成L0→Ln→L1→Ln-1→L2→Ln-2→… 思路: 首先将链表分为前后两半;L0→L1→...→L(n+1)/2和L(n+1)/2 +
        
阅读全文
 
        
            
    [LeetCode]Reverse Linked List II
    
            
摘要:题目:Reverse Linked List II 逆置链表m到n的之间的节点。 能用递归就能用栈来实现, 用栈来逆置链表,做法如下: 直接用循环来逆置链表: 1->2->3->4->5; (m,n)=(2,4); p=2;pre=1;end=4; q=5; 1)temp=p; 2)temp->ne
        
阅读全文
 
        
            
    [LeetCode]Swap Nodes in Pairs
    
            
摘要:题目:Swap Nodes in Pairs 交换相邻的两个节点。 思路: 两个指针指向相邻的两个节点,交换他们。 注意: 链表节点少于2个直接返回。 1->2->3->4->5->6 p:2,q:3; 交换3,4的顺序: p->next = q->next; p = p->next; q->nex
        
阅读全文
 
        
            
    [LeetCode]Remove Nth Node From End of List
    
            
摘要:题目:Remove Nth Node From End of List 删除链表从尾部到头部第N的节点。 思路: 两个指针,一个从头开始前移N个节点后,第二个指针开始移动,当第一指针移动到末尾时,第二个指针指向的是从尾部到头部的第N个节点。 注意: 1.N不合法,大于链表长度 2.要删除的是头结点
        
阅读全文
 
        
            
    [LeetCode]Permutation
    
            
摘要:给定一系列数字,关于从小到大的所有可能的排列的相关题目 题目1.next Permutation 给定一个数字,找到这一系列数字中从小到大排序中该数字的下一个数字值。 思路: 按位从后往前(从个位开始往上)找到给的数字的首个非增序的数字; 然后继续从前往后找到比该数字大且最接近它的数字,交换这两个数
        
阅读全文
 
        
            
    [LeetCode]Generate Parentheses
    
            
摘要:题目:Generate Parentheses 要找到所有可能的括号配对情况。 思路: 递归求解,记录当前已添加到字符串中的左括号个数, 每次判断当前是否可用左括号和右括号,都可以则将现有的字符串复制一份,表示增加一种情况。 当左括号已用完,则只能添加右括号。 当所有左括号都已配对且还有剩余括号时,
        
阅读全文
 
        
            
    [LeetCode]sum合集
    
            
摘要:LeetCode很喜欢sum,里面sum题一堆。 1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may a
        
阅读全文
 
        
            
    [LeetCode]Add Two Numbers
    
            
摘要:题目:Add Two Numbers 链表的数据对应位置相加,之和组成新的链表,已经说过是非负的值。 题目不难,注意链表的操作。 本人觉得平时练习有时间,即便题目说链表不为空,我们也应该判断一下,养成良好的习惯很重要。 说一下注意点: 1.主要考虑进位 2.注意可能链表不一样长 3.注意不要忘记了最
        
阅读全文