(javaScript)leetcode每日一题 - 24. 两两交换链表中的节点

83 阅读1分钟

leetcode每日一题 - 24 24. 两两交换链表中的节点

image.png

题解

image.png

贴出代码

// 4.15 三数之和
  class ListNode {
    val: number
    next: ListNode | null
    constructor(val?: number, next?: ListNode | null) {
      this.val = val === undefined ? 0 : val
      this.next = next === undefined ? null : next
    }
  }

  function swapPairs(head: ListNode | null): ListNode | null {
    let dummy = new ListNode()
    dummy.next = head
    let current = dummy
    while (current.next !== null && current.next.next !== null) {
      let n1 = current.next
      let n2 = current.next.next
      //current的下个节点是n2
      current.next = n2
      //n1的下个节点指向第三个节点即n2的下一个节点(看题解)
      n1.next = n2.next
      //n2的下个节点指向n1
      n2.next = n1
      //current节点移动到n1,开始下个循环.next
      current = n1
    }
    return dummy.next
  }