Skip to content

Commit d5ef94e

Browse files
Merge pull request #408 from zhangguangying/master
获取前置节点修改
2 parents e0e4e68 + 4d5f410 commit d5ef94e

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

php/06_linkedlist/SingleLinkedList.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ public function delete(SingleLinkedListNode $node)
8686

8787
// 获取待删除节点的前置节点
8888
$preNode = $this->getPreNode($node);
89+
if (empty($preNode)) {
90+
return false;
91+
}
8992

9093
// 修改指针指向
9194
$preNode->next = $node->next;
@@ -121,7 +124,7 @@ public function getNodeByIndex($index)
121124
*
122125
* @param SingleLinkedListNode $node
123126
*
124-
* @return SingleLinkedListNode|bool
127+
* @return SingleLinkedListNode|bool|null
125128
*/
126129
public function getPreNode(SingleLinkedListNode $node)
127130
{
@@ -133,7 +136,10 @@ public function getPreNode(SingleLinkedListNode $node)
133136
$preNode = $this->head;
134137
// 遍历找到前置节点 要用全等判断是否是同一个对象
135138
// http://php.net/manual/zh/language.oop5.object-comparison.php
136-
while ($curNode !== $node && $curNode != null) {
139+
while ($curNode !== $node) {
140+
if ($curNode == null) {
141+
return null;
142+
}
137143
$preNode = $curNode;
138144
$curNode = $curNode->next;
139145
}

0 commit comments

Comments
 (0)