class Node{
constructor(val) {
this.val = val;
this.next = null;
}
}
class SinglyLingkedList{
constructor() {
this.head = null;
this.tail = null;
this.length = 0;
}
push(val){
var newNode = new Node(val)
if (this.head == null) {
this.head = newNode;
this.tail = this.head;
} else{
this.tail.next = newNode;
this.tail = newNode;
}
this.length++;
return this
}
reverse(){
var node = this.head;
this.head.next = null;
this.tail = this.head;
return node;
}
}
var list = new SinglyLingkedList()
list.push("1")
list.push("2")
list.push("3")
list.reverse()
I’m new at programming. I’m pretty confused with my variable assignment in the reverse method, especially at
var node = this.head;
this.head.next = null;
this.tail = this.head;
return node;
Why return node is affected by this.head.next null? is not like what I expected
its return
Node : {val: '1', next: null}
not
Node : {val: '1', next: Node}
I wanted to know why it happened?