站点工具

用户工具


<markdown> # 反转链表 ## 描述 输入一个链表,反转链表后,输出新链表的表头。

## 示例1

``` 输入: {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>
admin · 2021/09/14 11:54 · 教程_算法_反转链表.1631591646.txt.gz