博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode】24. Swap Nodes in Pairs
阅读量:5351 次
发布时间:2019-06-15

本文共 1845 字,大约阅读时间需要 6 分钟。

Given a linked list, swap every two adjacent nodes and return its head.

For example,

Given 1->2->3->4, you should return the list as 2->1->4->3.

Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.

Tips:给定一个链表,在不改变链表的值,只改变结点的指针的情况下完成相邻两个结点的交换。

如:Input:1->2->3->4

  Output:2->1->4->3

思路:设置两个指针,first second,分别为当前指针的next以及next.next

first.next指向second.next;(1->3)

然后将second.next指向first(2->1)。

再将当前指针后移:cur.next=second; cur = first;

package medium;import dataStructure.ListNode;public class L24SwapNodesInPairs {    public ListNode swapPairs(ListNode head) {        if (head == null)            return head;        ListNode node = new ListNode(0);        node.next = head;        ListNode cur = node;                while (cur.next != null && cur.next.next!=null) {            ListNode first = cur.next;            ListNode second = cur.next.next;            first.next = second.next;//1->3            second.next=first;//2->1->3            cur.next=second;            cur = first;        }        return node.next;    }    public static void main(String[] args) {        ListNode head1 = new ListNode(1);        ListNode head2 = new ListNode(2);        ListNode head3 = new ListNode(3);        ListNode head4 = new ListNode(4);        ListNode head5 = new ListNode(5);        ListNode head6 = new ListNode(6);        ListNode head7 = null;        head1.next = head2;        head2.next = head3;        head3.next = head4;        head4.next = head5;        head5.next = head6;        head6.next = head7;        L24SwapNodesInPairs l24 = new L24SwapNodesInPairs();        ListNode head = l24.swapPairs(head1);        while (head != null ) {            System.out.println(head.val);            head=head.next;        }    }}

 

转载于:https://www.cnblogs.com/yumiaomiao/p/8447786.html

你可能感兴趣的文章
加固linux
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
YUI3自动加载树实现
查看>>
kettle导数到user_用于left join_20160928
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
malloc() & free()
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>