Reverse Linked List
2015-11-10 12:16
531 查看
1、题目
链接:https://leetcode.com/problems/reverse-linked-list/内容:Reverse a singly linked list.
2、分析
该题目有多种解法:1)利用递归完成;2)直接对链表的每个节点进行反向操作;3)还可以对链表的每个节点进行插入操作,即将待反转的链表中的每个节点依次插入到另一个链表的头部,插入完成后的该链表即为反转后的链表;3、代码
递归方式:class Solution { public: ListNode* reverseList(ListNode* head) { if (head == NULL || head->next == NULL) { return head; } ListNode *tmp = reverseList(head->next); head->next->next = head; head->next = NULL; return tmp; } };
直接反转:
class Solution { public: ListNode* reverseList(ListNode* head) { ListNode *newHead = nullptr; while (head != nullptr) { ListNode *tmp = head->next; head->next = newHead; newHead = head; head = tmp; } return newHead; } };
相关文章推荐
- 一个关于if else容易迷惑的问题
- 一道sql面试题附答案
- C# 超高面试题收集整理
- 人人网javascript面试题 可以提前实现下
- PHP中设置一个严格30分钟过期Session面试题的4种答案
- 据说是雅虎的一份PHP面试题附答案
- php牛逼的面试题分享
- 一套比较完整的javascript面试题(部分答案)
- 小米公司JavaScript面试题
- 超级全面的PHP面试题整理集合第1/2页
- 5个实用的shell脚本面试题和答案
- PHP经典面试题集锦
- 8个PHP数组面试题
- PHP中提问频率最高的11个面试题和答案
- 用PHP解决的一个栈的面试题
- PHP面试题之文件目录操作
- 几道坑人的PHP面试题 试试看看你会不会也中招
- 5个JavaScript经典面试题
- Java高级面试题小结
- Java实现栈和队列面试题