Skip to content

Commit 8170f02

Browse files
committed
Reverse Linked List
1 parent 337c366 commit 8170f02

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

LinkedList/ReverseLinkedList.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace Hakam\LeetCodePhp\LinkedList;
4+
5+
class ReverseLinkedList
6+
{
7+
public function reverseList(ListNode $node)
8+
{
9+
$current = $node;
10+
$prev = null;
11+
while($current!==null)
12+
{
13+
$tempNode = $current->next;
14+
$current->next = $prev;
15+
$prev = $current;
16+
$current = $tempNode;
17+
}
18+
return $prev;
19+
}
20+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"testCase1": {
3+
"expectedResult":[4,3,2,1],
4+
"input": [1,2,3,4]
5+
},
6+
"testCase2": {
7+
"expectedResult":[8,5,1,3,2,4],
8+
"input": [4,2,3,1,5,8]
9+
}
10+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace Hakam\LeetCodePhp\Tests\LinkedList;
4+
5+
use Hakam\LeetCodePhp\LinkedList\ReverseLinkedList;
6+
use Hakam\LeetCodePhp\Tests\Helper\LinkedListHelperTrait;
7+
use Hakam\LeetCodePhp\Tests\Helper\MainTest;
8+
9+
class ReverseLinkedListTest extends MainTest
10+
{
11+
use LinkedListHelperTrait;
12+
/**
13+
* @dataProvider provideData
14+
*/
15+
public function testWithDataList($expectedResult, $inputData): void
16+
{
17+
$reversList = new ReverseLinkedList();
18+
$list = $this->convertFromArray($inputData);
19+
self::assertEmpty(array_diff($expectedResult,
20+
$this->convertToArray($reversList->reverseList($list))));
21+
}
22+
}

0 commit comments

Comments
 (0)