File tree Expand file tree Collapse file tree 3 files changed +52
-31
lines changed
main/scala/org/codecraftlabs/leetcode
test/scala/org/codecraftlabs/leetcode Expand file tree Collapse file tree 3 files changed +52
-31
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ package org .codecraftlabs .leetcode
2+
3+ import scala .collection .mutable
4+
5+ object ReverseLinkedList {
6+ def reverseList (head : ListNode ): ListNode = {
7+ val nodeStack = mutable.ArrayStack [ListNode ]()
8+ process(head, nodeStack)
9+ nodeStack.head
10+ }
11+
12+ private def process (node : ListNode , nodeStack : mutable.ArrayStack [ListNode ]): Unit = {
13+ if (node != null ) {
14+ val item = node.next
15+
16+ val headItem = nodeStack.headOption
17+ headItem match {
18+ case None => node.next = null
19+ case _ => node.next = headItem.get
20+ }
21+
22+ nodeStack.push(node)
23+ process(item, nodeStack)
24+ }
25+ }
26+ }
Original file line number Diff line number Diff line change 1+ package org .codecraftlabs .leetcode
2+
3+ import org .codecraftlabs .leetcode .ListNodeUtils .mkString
4+ import org .codecraftlabs .leetcode .ReverseLinkedList .reverseList
5+ import org .scalatest .{FlatSpec , Matchers }
6+
7+ class ReverseLinkedListSpec extends FlatSpec with Matchers {
8+ it should " return 3 -> 2 -> 1" in {
9+ val node1 = new ListNode (1 )
10+ val node2 = new ListNode (2 )
11+ val node3 = new ListNode (3 )
12+
13+ node1.next = node2
14+ node2.next = node3
15+
16+ val result = mkString(reverseList(node1))
17+ result shouldEqual " 3-2-1"
18+ }
19+
20+ it should " return 1" in {
21+ val node1 = new ListNode (1 )
22+ val result = mkString(reverseList(node1))
23+ result shouldEqual " 1"
24+ }
25+ }
26+
You can’t perform that action at this time.
0 commit comments