Skip to content

Commit 69e536a

Browse files
committed
NULL改为nullptr
1 parent 4f076f8 commit 69e536a

File tree

4 files changed

+80
-93
lines changed

4 files changed

+80
-93
lines changed

C++/abstract.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ \subsubsection{内容简介}
1212

1313
\item Shorter is better。能递归则一定不用栈;能用STL则一定不自己实现。
1414

15-
\item 不提倡防御式编程。不需要检查malloc()/new 返回的指针是否为NULL;不需要检查内部函数入口参数的有效性;使用纯C基于对象编程时,调用对象的成员方法,不需要检查对象自身是否为NULL
15+
\item 不提倡防御式编程。不需要检查malloc()/new 返回的指针是否为nullptr;不需要检查内部函数入口参数的有效性。
1616
\myenddot
1717

1818
本手册假定读者已经学过《数据结构》\footnote{《数据结构》,严蔚敏等著,清华大学出版社,

C++/chapLinearList.tex

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ \section{单链表} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
321321
struct ListNode {
322322
int val;
323323
ListNode *next;
324-
ListNode(int x) : val(x), next(NULL) { }
324+
ListNode(int x) : val(x), next(nullptr) { }
325325
};
326326
\end{Code}
327327

@@ -353,15 +353,15 @@ \subsubsection{代码}
353353
ListNode* pre = head;
354354
ListNode *pa = l1, *pb = l2;
355355
int carry = 0;
356-
while (pa != NULL || pb != NULL) {
357-
int av = pa == NULL ? 0 : pa->val;
358-
int bv = pb == NULL ? 0 : pb->val;
356+
while (pa != nullptr || pb != nullptr) {
357+
int av = pa == nullptr ? 0 : pa->val;
358+
int bv = pb == nullptr ? 0 : pb->val;
359359
ListNode* node = new ListNode((av + bv + carry) % 10);
360360
carry = (av + bv + carry) / 10;
361361
pre->next = node; // 尾插法
362362
pre = pre->next;
363-
pa = pa == NULL ? NULL : pa->next;
364-
pb = pb == NULL ? NULL : pb->next;
363+
pa = pa == nullptr ? nullptr : pa->next;
364+
pb = pb == nullptr ? nullptr : pb->next;
365365
}
366366
if (carry > 0)
367367
pre->next = new ListNode(1);
@@ -388,9 +388,9 @@ \subsubsection{描述}
388388
Reverse a linked list from position $m$ to $n$. Do it in-place and in one-pass.
389389

390390
For example:
391-
Given \code{1->2->3->4->5->NULL}, $m$ = 2 and $n$ = 4,
391+
Given \code{1->2->3->4->5->nullptr}, $m$ = 2 and $n$ = 4,
392392

393-
return \code{1->4->3->2->5->NULL}.
393+
return \code{1->4->3->2->5->nullptr}.
394394

395395
Note:
396396
Given m, n satisfy the following condition:
@@ -475,7 +475,7 @@ \subsubsection{代码}
475475
class Solution {
476476
public:
477477
ListNode* partition(ListNode* head, int x) {
478-
if (head == NULL) return head;
478+
if (head == nullptr) return head;
479479

480480
ListNode left_dummy(0); // 头结点
481481
ListNode right_dummy(0); // 头结点
@@ -494,7 +494,7 @@ \subsubsection{代码}
494494
}
495495

496496
left_cur->next = right_dummy.next;
497-
right_cur->next = NULL;
497+
right_cur->next = nullptr;
498498

499499
return left_dummy.next;
500500
}
@@ -533,10 +533,10 @@ \subsubsection{代码}
533533
class Solution {
534534
public:
535535
ListNode *deleteDuplicates(ListNode *head) {
536-
if (head == NULL) return NULL;
536+
if (head == nullptr) return nullptr;
537537
ListNode * prev = head;
538538
ListNode *cur = head->next;
539-
while (cur != NULL) {
539+
while (cur != nullptr) {
540540
if (prev->val == cur->val) {
541541
ListNode* temp = cur;
542542
cur = cur->next;
@@ -584,14 +584,14 @@ \subsubsection{代码}
584584
class Solution {
585585
public:
586586
ListNode *deleteDuplicates(ListNode *head) {
587-
if (head == NULL) return head;
587+
if (head == nullptr) return head;
588588

589589
ListNode dummy(INT_MIN); // 头结点
590590
dummy.next = head;
591591
ListNode *prev = &dummy, *cur = head;
592-
while (cur != NULL) {
592+
while (cur != nullptr) {
593593
bool duplicated = false;
594-
while (cur->next != NULL && cur->val == cur->next->val) {
594+
while (cur->next != nullptr && cur->val == cur->next->val) {
595595
duplicated = true;
596596
ListNode *temp = cur;
597597
cur = cur->next;
@@ -629,7 +629,7 @@ \subsubsection{描述}
629629
Given a list, rotate the list to the right by $k$ places, where $k$ is non-negative.
630630

631631
For example:
632-
Given \code{1->2->3->4->5->NULL} and \code{k = 2}, return \code{4->5->1->2->3->NULL}.
632+
Given \code{1->2->3->4->5->nullptr} and \code{k = 2}, return \code{4->5->1->2->3->nullptr}.
633633

634634

635635
\subsubsection{分析}
@@ -642,7 +642,7 @@ \subsubsection{代码}
642642
class Solution {
643643
public:
644644
ListNode *rotateRight(ListNode *head, int k) {
645-
if (head == NULL || k == 0) return head;
645+
if (head == nullptr || k == 0) return head;
646646

647647
int len = 1;
648648
ListNode* p = head;
@@ -657,7 +657,7 @@ \subsubsection{代码}
657657
p = p->next; //接着往后跑
658658
}
659659
head = p->next; // 新的首节点
660-
p->next = NULL; // 断开环
660+
p->next = nullptr; // 断开环
661661
return head;
662662
}
663663
};

C++/chapSorting.tex

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -54,23 +54,15 @@ \subsubsection{分析}
5454

5555
\subsubsection{代码}
5656
\begin{Code}
57-
struct ListNode {
58-
int val;
59-
ListNode *next;
60-
ListNode(int x) :
61-
val(x), next(NULL) {
62-
}
63-
};
64-
6557
//LeetCode, Merge Two Sorted Lists
6658
class Solution {
6759
public:
6860
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
6961
ListNode* head = new ListNode(-1);
7062
ListNode* p = head;
71-
while (l1 != NULL || l2 != NULL) {
72-
int val1 = l1 == NULL ? INT_MAX : l1->val;
73-
int val2 = l2 == NULL ? INT_MAX : l2->val;
63+
while (l1 != nullptr || l2 != nullptr) {
64+
int val1 = l1 == nullptr ? INT_MAX : l1->val;
65+
int val2 = l2 == nullptr ? INT_MAX : l2->val;
7466
if (val1 <= val2) {
7567
p->next = l1;
7668
l1 = l1->next;
@@ -109,20 +101,12 @@ \subsubsection{分析}
109101

110102
\subsubsection{代码}
111103
\begin{Code}
112-
struct ListNode {
113-
int val;
114-
ListNode *next;
115-
ListNode(int x) :
116-
val(x), next(NULL) {
117-
}
118-
};
119-
120104
//LeetCode, Merge k Sorted Lists
121105
class Solution {
122106
public:
123107
ListNode *mergeKLists(vector<ListNode *> &lists) {
124-
if (lists.size() == 0)
125-
return NULL;
108+
if (lists.size() == 0) return nullptr;
109+
126110
ListNode *p = lists[0];
127111
for (int i = 1; i < lists.size(); i++) {
128112
p = mergeTwoLists(p, lists[i]);
@@ -134,9 +118,9 @@ \subsubsection{代码}
134118
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
135119
ListNode* head = new ListNode(-1);
136120
ListNode* p = head;
137-
while (l1 != NULL || l2 != NULL) {
138-
int val1 = l1 == NULL ? INT_MAX : l1->val;
139-
int val2 = l2 == NULL ? INT_MAX : l2->val;
121+
while (l1 != nullptr || l2 != nullptr) {
122+
int val1 = l1 == nullptr ? INT_MAX : l1->val;
123+
int val2 = l2 == nullptr ? INT_MAX : l2->val;
140124
if (val1 <= val2) {
141125
p->next = l1;
142126
l1 = l1->next;

0 commit comments

Comments
 (0)