<markdown> # 反转链表
描述:输入一个链表,反转链表后,输出新链表的表头。
示例
``` 输入: {1,2,3}
返回值: {3,2,1} ```
## 代码实现 ```javascript
function reverseList(list) { let pre = next = null, cur = list while(cur) { next = cur.next cur.next = pre pre = cur cur = next } return pre }
``` ## 测试 ```javascript <script>
function reverseList(list) { let pre = next = null, cur = list while(cur) { next = cur.next cur.next = pre pre = cur cur = next } return pre }
class Node { constructor(val) { this.val = val this.next = null } }
function createList(values) { if (values.length === 0) return null let head = new Node(values[0]), p = head for (let i = 1; i < values.length; i++) { p.next = new Node(values[i]) p = p.next } return head }
function showList(list) { let p = list let arr = [] while (p) { arr.push(p.val) p = p.next } console.log(arr.join('->')) }
let list = createList([1,2,8,9,0,5]) showList(list) let list2 = reverseList(list) showList(list2)
</markdown>