首页 > 其他分享 >(链表)17-两两交换链表中的节点

(链表)17-两两交换链表中的节点

时间:2023-11-19 20:23:44浏览次数:29  
标签:ListNode 17 val next 链表 temp 节点

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode() {}
 7  *     ListNode(int val) { this.val = val; }
 8  *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 9  * }
10  */
11 class Solution {
12     public ListNode swapPairs(ListNode head) {
13         // 增加头节点
14         ListNode root = new ListNode(0);
15         // 新建头节点连接到入参链表
16         root.next = head;
17         // 申请临时节点-交换临时节点后面的两个节点
18         ListNode temp = root;
19         // 开始交换
20         while (temp.next != null && temp.next.next != null) {
21             // 记录要交换的左节点
22             ListNode node1 = temp.next;
23             // 记录要交换的右节点
24             ListNode node2 = temp.next.next;
25             // 交换左右节点
26             temp.next = node2;
27             node1.next = node2.next;
28             node2.next = node1;
29             // 移动临时节点-用于继续交换下一对节点
30             temp = node1;
31         }
32         // 返回结果
33         return root.next;
34     }
35 }

 

标签:ListNode,17,val,next,链表,temp,节点
From: https://www.cnblogs.com/StringBuilder/p/17842544.html

相关文章

  • (链表)08-链表中倒数最后K个结点
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*publicListNode(intval){8*this.val=val;9*}10*}11*/1213publicclassSolution{14/**15*@param......
  • (链表)09-删除链表的倒数第N个节点
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*}8*/9publicclassSolution{10/**11*@paramheadListNode类12*@paramnint整型13*@returnListNode类14......
  • 求两个链表差集
    一、题目什么是差集对于集合A={a,b,c,d}和集合B={b,c,w},则A与B的差集为二、我的解答(所求的是L1-L2)list*p1=L1->next;//指向L1链表的指针p1List*p2=L2->next;//指向L2链表的指针p2思想:若p1和p2指向空间的数据域的值相等,则两指针向后移动,如果不等且p1<p2,那么L......
  • 求有序链表交集
    一、题目二、我的解答思想:因为递增有序,所以两个指针依次遍历,这次就不考虑相等的情况了,默认为严格递增。list*intersection(list*L1,list*L2){ if(!L1||!L2)returnNULL; list*p1=L1->next,*p2=L2->next,*p3=L1; while(p1&&p2){ if(p1->value==......
  • 洛谷B2017 打印 ASCII 码(Python3)
    要点:1.Python的input()默认要换行,而在输入的时候即使只输了一个字符,也会被判定为输入两个字符。故此处要么只取字符串的第一位,要么在输入时用.strip()来删去首位字符,strip的介绍在这里2.Python中不能用强制类型转换来得到ASCII码,需要用到ord()函数。ord():括号内的字符的ASCI......
  • 学期2023-2024-1 20231417 《计算机基础与程序设计》第八周学习总结
    学期2023-2024-120231417《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标《计算机科学概论》第9章《C语言程序设计》第7章并完......
  • 2023-2024-20231317《计算机程序与设计》第八周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第八周作业)这个作业的目标<《计算机程序概论九张》《C语言程序设计第七章》>作业正文https://www.cnblog......
  • 合并有序链表
    一、题目二、代码1.思想:将情况分为三种,大于和小于简单的合并,相等的时候需要额外考虑一些问题哪些问题?1.新表指针如何移动2.两个子表指针如何移动相等的时候,需要考虑新表指针的如何操作,当新表中已经存在,两个子表指针目前所指节点的值,就只需将两个子表中重复的元素略过,......
  • 两两交换链表中的节点
    现在时间是:  2023年11月18日 星期六   农历十月初六  22:08:每天坚持刷Leetcode,遇到有些突然看到就不能想得很清楚的题目,还是需要进行记录一下!Leetcode热题100(学习计划):两两交换链表中的节点,题目信息如下:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节......
  • 11.17~11.18暨noip2023游寄
    11.17我们DZ不负众望又干了点nt事,但是为了按时间顺序记叙,所以说放到最后再讲上午平常的起床+吃饭,然后就发手机啥的,坐大巴去德州东再坐会高铁去秦皇岛,这些简单记一下就行了重点来了先拜谢一下__int_R__在大巴上的时候tkth拉int_R回粥,然后他在自己号整了几抽出了个6星,又在tkth......