讲解:NSArray 类有两个限制。首先,它只能存储 Objective-C 的对象,而不能存储原始的 C 语言基础数据类型,如 int 、float、 enum、struct 和 NSArray 中的随机指针。同时,你也不能在 NSArray 中存储 nil (对象的零值或 NULL 值)。有很多种方法可以避开这些限制。
可以通过类方法 arrayWithObjects: 创建一个新的 NSAr...
分类:
其他好文 时间:
2015-06-20 10:36:39
阅读次数:
110
有段时间准备找工作,囫囵吞枣地做了《剑指offer》提供的编程习题,下面是题解收集。当初没写目录真是个坏习惯(-_-)||,自己写的东西都要到处找。剑指Offer - 九度1524 - 复杂链表的复制剑指Offer - 九度1509 - 树中两个结点的最低公共祖先剑指Offer - 九度1508 -...
分类:
其他好文 时间:
2015-05-28 07:05:50
阅读次数:
246
题目:请实现函数ComplexListNode *Clone(ComplexListNode *pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任意结点或者NULL。结点的C++小定义如下:
struct ComplexListNode{
int m_nValue;
ComplexListNode *...
分类:
其他好文 时间:
2015-05-21 00:05:45
阅读次数:
209
题意:这个题目也是个蛮有意思的题目,就是对一个有随机指针的链表进行深拷贝,
思路:简单地来说就是递归拷贝,然后呢防止重复拷贝,所以凡是拷贝过得内存地址都得记录下来
代码:
Map m = new HashMap();
//保存已经copy的部分
public RandomListNode copyRandomList(RandomListNode head)...
分类:
其他好文 时间:
2015-05-16 16:35:40
阅读次数:
125
有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:struct ListNode{ int value; ListNode *next; ListNode *sibling; ...
分类:
其他好文 时间:
2015-05-16 16:21:09
阅读次数:
122
给出一条带随机指针的链表,对其进行深度拷贝(Deep Copy)。...
分类:
编程语言 时间:
2015-05-13 10:30:12
阅读次数:
125
#include
using namespace std;struct Node
{
int val;
struct Node *next;
Node(int x = int()):val(x),next(NULL){}
};struct List
{
List()
{
head=NULL;
}
void...
分类:
编程语言 时间:
2015-05-09 13:24:55
阅读次数:
151
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy ...
分类:
其他好文 时间:
2015-01-30 06:40:19
阅读次数:
186
这道题目很经典,很多书和OJ里都有。如果初次遇到,一定很难搞定。再看其解法,实在是很惊艳。
有两个可以得到深刻启示的地方:
(1)冗余的思想。谈到复制,我们往往都会另起炉灶,而不会原来链表上搞来搞去,感觉很复杂很危险,会一团糟。美错,最危险的地方就是最安全的地方。
(2)指针的步伐。这里的指针有一走两步的操作,很容易导致RE。但是否意味着每步都要仔细考虑指针越界?不然,那样程序会写的很累很乱...
分类:
其他好文 时间:
2014-12-05 12:50:51
阅读次数:
165
题目:有一个复杂链表,除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。结点的C++定义如下:1 struct ComplexNode2 {3 int m_nValue;4 ComplexNode* m_pNext;5 ...
分类:
其他好文 时间:
2014-12-04 00:58:23
阅读次数:
116