【一天一道LeetCode】#24. Swap Nodes in Pairs
2016-04-22 21:12
691 查看
一天一道LeetCode系列
(一)题目
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.
(二)解题
给定一个链表,交换相邻两个节点,这道题要特别注意越界问题。评级easy的题!就不多废话了。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* swapPairs(ListNode* head) { if(head == NULL) return NULL; ListNode* p = head; ListNode* pnext = head->next; while(p!=NULL&&pnext!=NULL) { int tmp = pnext->val; pnext->val = p->val; p->val = tmp; if(pnext->next !=NULL) p = pnext->next; //考虑越界问题,如[1,2,3,4] else p=NULL; if(p!= NULL && p->next != NULL) pnext = p->next;//考虑越界问题,如[1,2,3,4,5] else pnext=NULL; } return head; } };
相关文章推荐
- 搭建Hadoop2集群出现Datanode启动不了的问题及解决办法
- Node.js#0基础
- Install Latest Versions NodeJS NPM on ubuntu
- 菜鸟学习nodejs--安装nodejs
- 欢迎使用CSDN-markdown编辑器
- NodeJS项目构建工具Grunt
- Pomelo网易开源基于Node.js的游戏服务器框架pomelo
- 从Node.js分裂出Io.js事件看开源软件谁做主
- nodejs php md5 加密不一致问题
- Node 究竟是什么
- Hadoop学习9--动态增加datanode
- node应用通过multer模块实现文件上传
- 关于NodeJS的Cookie和Session机制
- Windows环境下使用Node.js
- 旧版 npm 安装 node_modules 模块目录层次过深,导致 win 下无法删除
- MonoDevelop几个常用的快捷键
- Swap Two Nodes in Linked List
- NodeJs 常用工具
- RT-THREAD在IAR环境下使用finsh返回 Null node的解决办法
- node passport