題目:輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。
之前一直對JS實現鏈表理解不了,被算法大牛指點了一下豁然開朗。
function ListNode(x){ this.val = x; this.next = null; }
在JS中,this.val代表當前節點的值,this.next指向下一個節點,若this.next為null(對象),則說明該節點為鏈表的最后一個節點。
PS:把下一個節點賦值給當前對象的next屬性,通過這樣的方式連接。
通過代碼:
var reverseList = function(head) { let prev = null; let curr = head; while (curr !== null) { let cnext = curr.next; curr.next = prev === null ? null : prev prev = curr; curr = cnext; } return prev };