cpongo
2015-11-19 18:12
429 查看
翻译
<code class="hljs haskell has-numbering">给定一个链表,调换每两个相邻节点,并返回其头部。 例如, 给定 <span class="hljs-number">1</span>-><span class="hljs-number">2</span>-><span class="hljs-number">3</span>-><span class="hljs-number">4</span>, 你应该返回的链表是 <span class="hljs-number">2</span>-><span class="hljs-number">1</span>-><span class="hljs-number">4</span>-><span class="hljs-number">3</span>。 你的算法必须使用唯一不变的空间。 你也不能修改列表中的值,只有节点本身是可以改变的。</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul>
原文
<code class="hljs applescript has-numbering">Give a linked <span class="hljs-type">list</span>, swap <span class="hljs-keyword">every</span> two adjacent nodes <span class="hljs-keyword">and</span> <span class="hljs-constant">return</span> <span class="hljs-keyword">its</span> head. For example, Given <span class="hljs-number">1</span>-><span class="hljs-number">2</span>-><span class="hljs-number">3</span>-><span class="hljs-number">4</span>, you should <span class="hljs-constant">return</span> <span class="hljs-keyword">the</span> <span class="hljs-type">list</span> <span class="hljs-keyword">as</span> <span class="hljs-number">2</span>-><span class="hljs-number">1</span>-><span class="hljs-number">4</span>-><span class="hljs-number">3.</span> Your algorithm should use only <span class="hljs-type">constant</span> <span class="hljs-constant">space</span>. You may <span class="hljs-keyword">not</span> modify <span class="hljs-keyword">the</span> values <span class="hljs-keyword">in</span> <span class="hljs-keyword">the</span> <span class="hljs-type">list</span>, only nodes itself can be changed.</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul>
分析
我们就以题目中给出的1,2,3,4作为示例,将其作为两部分<code class="hljs brainfuck has-numbering"><span class="hljs-comment">1,2</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-comment">3,4</span></code><ul style="display: block;" class="pre-numbering"><li>1</li></ul>
或者我画个图出来更加直观吧……
代码
<code class="hljs java has-numbering"><span class="hljs-javadoc">/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode* next; * ListNode(int x): val(x), next(NULL) {} * }; */</span> class Solution { <span class="hljs-keyword">public</span>: ListNode* <span class="hljs-title">swapPairs</span>(ListNode* head) { <span class="hljs-keyword">if</span>(head == NULL) <span class="hljs-keyword">return</span> NULL; <span class="hljs-keyword">if</span>(head->next == NULL) <span class="hljs-keyword">return</span> head; ListNode* temp = head->next; head->next = swapPairs(temp->next); temp->next = head; <span class="hljs-keyword">return</span> temp; } };</code>
相关文章推荐
- django template 自定义filter的使用
- Mongoose6.0源码分析(3)-重要结构体
- golang 大文件分割
- Google breakpad
- Django里,如何更改ADMIN管理后台的显示
- 揭秘TensorFlow:Google开源到底开的是什么?
- ubuntu下Django的安装和使用(一)
- GO语言实现文件上传
- Django学习笔记2
- 【Educational Codeforces Round 1D】【DFS 联通块打标记法】Igor In the Museum 联通块内墙的面数
- GO语言的"类"操作
- go 读取文件, 最后有没有换行符
- control_msgs/FollowJointTrajectoryActionGoal Message
- 有了 Mesos,Verizon 终于不用再羡慕 Google 了
- compiler dragonbook
- 学习golang并做一个简单分布式存储项目
- 谷歌验证 (Google Authenticator) 的实现原理是什么?
- <2> go -反射-函数map化
- 【推荐算法概览】《Overview of Recommender Algorithms》
- Uva11292 The Dragon of Loowater