定义一个基类,用基类的指针分别指向不同的子类。。。
#include
#include
#include
#include
using namespace std;
class ListNode {
public:
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {
}
};
...
分类:
编程语言 时间:
2014-08-16 11:15:50
阅读次数:
187
这个题目就是用两个指针遍历链表,一个指针每次跳一步,另外一个指针每次跳两步,如果重合,则说明有环。 1 #define NULL 0 2 3 class Solution { 4 public: 5 bool hasCycle(ListNode *head) { 6 Lis...
分类:
其他好文 时间:
2014-08-14 19:27:19
阅读次数:
185
1 #define NULL 0 2 3 class Solution { 4 public: 5 void reorderList(ListNode *head) { 6 stack s; 7 ListNode* ptr1,*ptr2,*tmp; 8 ...
分类:
其他好文 时间:
2014-08-14 16:32:28
阅读次数:
176
60.在 O(1)时间内删除链表结点(链表、算法)。题目:给定链表的头指针和一个结点指针,在 O(1)时间删除该结点。链表结点的定义如下:struct ListNode{int m_nKey;ListNode* m_pNext;};函数的声明如下:void DeleteNode(ListNode*....
分类:
其他好文 时间:
2014-08-14 15:56:18
阅读次数:
148
单链表是一种递归结构,可以将单链表看作特殊的二叉树(我把它叫做一叉树)单链表的定义:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * List...
分类:
其他好文 时间:
2014-08-13 18:37:17
阅读次数:
213
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
//增加节点
/*第一个参数是一个指向指针的指针。当我们往一个空链表中插入一个节点时,新插入的节点
就是链表的头指针。由于此时会改动头指针,因此必须把pHead参数设为指向指针的指针*/
void addToTail(ListNode** pHead, int value) ...
分类:
其他好文 时间:
2014-08-11 15:00:22
阅读次数:
307
//逆置单链表,原地操作,只需要遍历一遍
private?ListNode?reverse(ListNode?head)
{
????ListNode?pre?=?null;
????ListNode?cur?=?head;
????while(cur!=null)
????{
???????...
分类:
其他好文 时间:
2014-08-10 13:12:50
阅读次数:
284
Sort a linked list using insertion sort.思路:若当前元素比head小,插入已排序队列头部;否则,从前往后查找当前元素的插入位置。 1 ListNode *insertionSortList( ListNode *head ) { 2 if( !head...
分类:
其他好文 时间:
2014-08-10 01:30:39
阅读次数:
313
58.从尾到头输出链表(链表)。题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:struct ListNode{int m_nKey;ListNode* m_pNext;};我的思路:用一个数组存起来已有的数字,再反过来输出。缺点是数组大小是确定的 链表长度不能超过数....
分类:
其他好文 时间:
2014-08-09 18:39:00
阅读次数:
258
问题:删除距离末尾n个距离的结点分析:先找出距离末尾n个距离的结点其距离开始的距离多少,然后再删除/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ...
分类:
其他好文 时间:
2014-08-06 21:58:02
阅读次数:
199