博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode -- Swap Nodes in Pairs
阅读量:5109 次
发布时间:2019-06-13

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

Question:

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.

 

Analysis:

给出一个链表,交换两个彼此相邻的节点。注意:不能只是交换节点的数据,而是要真正的交换节点。只能使用固定的额外空间。

这道题目就是考察链表指针间的操作。为了与后面的保持一致,这里在head结点前面加一个首节点,让它指向head。除了交换两个交换加点间的指针,还要考虑该两个结点的前一个、后一个结点的连接性,因此需要一个额外的指针,指向交换节点的前一个节点。同时保证链表的链首不要丢失。

 

Answer:

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode swapPairs(ListNode head) {        if(head == null || head.next == null) //若链表为空或只有一个节点,则返回原链表即可            return head;                ListNode hh = new ListNode(-1);        hh.next = head; //为链表加一个头结点                ListNode p = hh, i = p.next, j = i.next;        while(i != null || j != null) { //偶数个结点时i,j为空,奇数个节点时j为空            p.next = j;            i.next = j.next;            j.next = i;            p = i;            if(p.next == null)                return hh.next;            if(p.next.next == null)                return hh.next;            i = p.next;            j = i.next;        }                return hh.next;            }}

 

转载于:https://www.cnblogs.com/little-YTMM/p/4802730.html

你可能感兴趣的文章
Java动态代理
查看>>
WindowsPhone7中Perst数据库的使用(一)
查看>>
HDU 1215 七夕节
查看>>
P3043 [USACO12JAN]牛联盟Bovine Alliance(并查集)
查看>>
AdminLTE 2.4
查看>>
AI将代替2000万人的工作岗位,其中包括程序员?
查看>>
简单的 Promise 实现
查看>>
59、servlet3.0-异步请求
查看>>
其他选择器
查看>>
《玩转Spring》第二章 BeanPostProcessor扩展
查看>>
Silverlight学习点滴之四——DataGrid如何绑定外键
查看>>
数据库答案
查看>>
white-space、word-break、word-wrap和text-overflow
查看>>
图论(网络流):SCOI 2007 修车
查看>>
python-装饰器&生成器&迭代器
查看>>
“因为数据库正在使用,所以无法获得对数据库的独占访问权。”处理
查看>>
控件缩放
查看>>
IOS问题汇总:2015-1-8 SBJson解析时报错—json文件字符非法
查看>>
c# int Int32 Int64 的区别
查看>>
[视频]K8飞刀 一键免杀 IE神洞网马教程
查看>>