题目描述输入一个链表,反转链表后,输出链表的所有元素。分析:此题学过数据结构的应该会首先想到链表建立时所采用的头插法,即每一个新插入进来的点均插在链表头。代码如下: 1 /* 2 public class ListNode { 3 int val; 4 ListNode next =...
                            
                            
                                分类:
其他好文   时间:
2015-08-28 00:45:53   
                                阅读次数:
176
                             
                         
                    
                        
                            
                            
                                【206-Reverse Linked List(反转一个单链表)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原题  Reverse a singly linked list. 
题目大意  反转单链表。 
解题思路  使用头插法。 
代码实现结点类public class ListNode {...
                            
                            
                                分类:
编程语言   时间:
2015-08-27 07:12:30   
                                阅读次数:
281
                             
                         
                    
                        
                            
                            
                                1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 val(x), next(NULL) { 7 } 8 };*/ 9 clas...
                            
                            
                                分类:
其他好文   时间:
2015-08-26 23:51:28   
                                阅读次数:
226
                             
                         
                    
                        
                            
                            
                                判断单链表是否为回文;思想:利用来两个指针找到链表中点,将后半个链表反转。然后判断。有个问题,下面的代码没有恢复原来的单链表。 1 class Solution { 2 public: 3 bool isPalindrome(ListNode* head) { 4 ListN...
                            
                            
                                分类:
其他好文   时间:
2015-08-25 23:06:44   
                                阅读次数:
180
                             
                         
                    
                        
                            
                            
                                思路:
1.如何判断一个链表是否是回文的?很简单将链表中的元素遍历出来并放进ArrayList中,然后可以像数组一样来判断该元素是否为回文的,时间复杂度O(n),空间复杂度O(n),可如何用O(n)的时间复杂度和O(1)的空间复杂度来解决呢?
2.是不是可以考虑 将链表反转?可反转后还是链表啊,要是将链表分为前后两个部分呢,分为两个部分还是无法判断该链表是否为回文链表啊,那要是再将其中一个链表反转一下呢,It's done!好多时候,多想一步容易,再多想一步就困难了。...
                            
                            
                                分类:
其他好文   时间:
2015-08-13 10:03:53   
                                阅读次数:
117
                             
                         
                    
                        
                            
                            
                                思路1:O(n^2).“狸猫换太子”,不进行改动链表结构,只首尾交换len/2次。但是在本函数中用到了定位函数,定位函数实际上是遍历了一遍整个链表,所以综合效率很低,达到O(n^2). //单链表反转(O(n^2))void reverseList(Node* Head){ int count .....
                            
                            
                                分类:
其他好文   时间:
2015-08-12 01:08:40   
                                阅读次数:
109
                             
                         
                    
                        
                            
                            
                                Given a singly linked list, determine if it is a palindrome.
Follow up:
Could you do it in O(n) time and O(1) space?
给定一个单链表,判断它的元素是否是回文。要求在O(n)的时间复杂度和O(1)的空间复杂度内求解。如果没有时间复杂度的限制,可以直接将链表反转再比较就...
                            
                            
                                分类:
其他好文   时间:
2015-07-27 16:20:55   
                                阅读次数:
88
                             
                         
                    
                        
                            
                            
                                Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:
Given 1->2->3->4->5->NULL, m = 2 and n =
 4,
return 1->4->3->2->5->NULL.
Note:
Given m, n satisfy t...
                            
                            
                                分类:
其他好文   时间:
2015-07-27 11:11:00   
                                阅读次数:
113
                             
                         
                    
                        
                            
                            
                                1.使用三个节点指针遍历链表实现反转 1 template 2 void ReverseList(SingleListNode *head) 3 { 4 //1.三个指针迭代 5 SingleListNode *p,*q,*r; 6 if (head->next==NULL)...
                            
                            
                                分类:
其他好文   时间:
2015-07-25 18:19:31   
                                阅读次数:
126
                             
                         
                    
                        
                            
                            
                                ReverseLinked List
A linked list can be reversed eitheriteratively or recursively. Could you implement both? 
迭代版本:
1.	/** 
2.	 * Definition for singly-linked list. 
3.	 * struct ListNode { 
4.	 ...
                            
                            
                                分类:
编程语言   时间:
2015-07-21 12:54:18   
                                阅读次数:
112