两两交换链表中的节点

var swapPairs = function(head) {
	let sentinel = new ListNode();
    sentinel.next = head;
    let curr = sentinel;
    while(curr.next != null && curr.next.next != null){
        let temp1 = curr.next;//第一个节点
        let temp2 = curr.next.next;//第二个节点
        let temp3 = curr.next.next;//第三个节点
        curr.next = temp2;//curr为哨兵,让链表第一个节点为原链表第二个节点
        temp2.next = temp1;//原链表第二个节点指向原链表第一个节点
        temp1.next = temp3;//现链表第二个节点指向原链表第三个节点,至此完成交换
        curr = temp1;//更新curr到下一组要交换的第一个节点的前一个节点,即为一开始创建哨兵的意义
    }
    //返回哨兵的下一个,即交换后的链表的第一个节点
    return sentinel.next;
}

相关推荐

  1. 交换节点

    2024-04-02 20:52:01       38 阅读
  2. leetcode24. 交换节点

    2024-04-02 20:52:01       47 阅读
  3. LC24. 交换节点

    2024-04-02 20:52:01       46 阅读
  4. LeetCode [24] 交换节点

    2024-04-02 20:52:01       44 阅读
  5. 【Leetcode】24. 交换节点

    2024-04-02 20:52:01       42 阅读
  6. LeetCode24.交换节点

    2024-04-02 20:52:01       40 阅读
  7. 交换节点

    2024-04-02 20:52:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-02 20:52:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-02 20:52:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-02 20:52:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-02 20:52:01       18 阅读

热门阅读

  1. 2024.2.15力扣每日一题——二叉树的层序遍历2

    2024-04-02 20:52:01       15 阅读
  2. Android invalidate、postInvalidate、requestLayout的区别

    2024-04-02 20:52:01       12 阅读
  3. FastAPI Web框架教程 第11章 请求响应的进阶用法

    2024-04-02 20:52:01       14 阅读
  4. 蓝桥杯刷题记录之质数

    2024-04-02 20:52:01       11 阅读
  5. nignx的功能包括哪些

    2024-04-02 20:52:01       13 阅读