zoukankan      html  css  js  c++  java
  • 24.成对的交换节点(24.Swap Nodes in Pairs)

    题目:

    给定一个链表,交换每两个相邻的节点并返回其头。

    例如,
    给定1->2->3->4,您应该返回列表2->1->4->3

    您的算法应该仅使用恒定空间。不能修改列表中的值,只能改变节点本身。

    思路:从链表的头节点开始将相邻的两个节点进行交换位置,然后剩下未交换的节点作为一个新的链表进行递归的交换,直到所要进行交换的链表节点个数小于2,则返回此链表。

    代码:

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public ListNode swapPairs(ListNode head) {
    11         
    12         //思路:从链表的头节点开始将相邻的两个节点进行交换位置,然后剩下未交换的节点作为一个新的链表进行递归的交换,直到所要进行交换的链表节点个数小于2,则返回此链表。
    13         
    14         if(head==null||head.next==null){
    15             
    16             return head;
    17             
    18         }
    19         
    20         ListNode l=head.next.next;//剩下未进行交换节点组成的新链表的表头;
    21         
    22         //将原链表的头节点和第二个节点进行交换位置
    23         ListNode temp=head;
    24         head=temp.next;//将原链表的第二个节点变为头节点
    25         head.next=temp;//将原链表的头节点变为第二个节点
    26         temp.next=swapPairs(l);//新链表进行递归交换相邻节点作为已经交换相邻节点的第二个节点的后继节点;
    27         
    28         return head;
    29     }
    30 }
  • 相关阅读:
    log4j学习
    数据库索引
    php 通过exec 创建git分支失败
    Nginx 常用全局变量 及Rewrite规则详解
    Jetbrains phpstorm pycharm 免费授权注册码
    Nginx return 关键字配置小技巧
    PHP 加密 和 解密 方法
    Nginx 禁用IP IP段
    Yii2 捕获错误日志
    transform 实现响应式绝对居中
  • 原文地址:https://www.cnblogs.com/xuzhiyuan/p/7655552.html
Copyright © 2011-2022 走看看