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

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

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.

解法:可以使用递归,每次交换前两个,将剩下的链表递归,返回的是新的链表头。

 

1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { 7  *         val = x; 8  *         next = null; 9  *     }10  * }11  */12 public class Solution {13     public ListNode swapPairs(ListNode head) {14             if (head==null || head.next==null) {15                 return head;16             }17         ListNode p = head;18         ListNode begin=null;19            ListNode temp = p;20            21            p=p.next;22            temp.next=p.next;23            p.next=temp;24            if (begin==null) {25             begin = p;26         }27             p=p.next;28             p.next=swapPairs(p.next);29             return begin;30     }31 }

 

转载于:https://www.cnblogs.com/birdhack/p/4001064.html

你可能感兴趣的文章
关于本地使用tomcat部署web应用,浏览器自动跳转为https的问题
查看>>
一、Text To Speech
查看>>
Java读取并下载网络文件
查看>>
JS继承之原型继承
查看>>
HTTP Modules versus ASP.NET MVC Action Filters
查看>>
iOS学习4_UITableView的使用
查看>>
ctDNA 相关网站-liquid-biopsy
查看>>
centos7下git服务器端搭建(转)
查看>>
[转] Implementation of Fast Fourier Transform for Image Processing in DirectX 10
查看>>
GIT归纳整理
查看>>
Magento网站迁移指南
查看>>
github心得
查看>>
Mac下用vim编辑脚本
查看>>
Docker
查看>>
IAR FOR STM8 中 RELEASE 和 DEBUG 的区别
查看>>
【mysql】关于innodb中MVCC的一些理解
查看>>
使用VHD,让Win XP和 Win2003 运行在内存中
查看>>
数字统计类题目的非数位DP解法
查看>>
5.20 欢乐赛
查看>>
Android应用中通过AIDL机制实现进程间的通讯实例
查看>>