Есть одна вещь, которую я не совсем понимаю, например:
public class Node {
var val:Int
var next:Node?
init(_ val:Int) {
self.val = val
self.next = nil
}
}
func printList(_ node:Node?) {
var cur = node
while cur != nil {
print(cur!.val, terminator: " ")
cur = cur.next
}
}
var l1 = Node(1)
var l2 = Node(2)
var l3 = Node(3)
l1.next = l2
l2.next = l3
Теперь, когда я делаю printlist(l1)
, она печатает:
1 2 3
, что правильно.
Что если я установлю l2.next = nil
, тогда printList(l1)
?Вывод: 1 2
, который я могу понять.
Что я не понимаю, так это то, что если я установлю l2 = nil
, то printList(l1)
, он все равно печатает 1 2 3
.
Почему он не печатает 1
, поскольку второй узел стал нулевым, поэтому он должен обрезать список?