相比之前的那个方法:206. Reverse Linked List
这个方法比较简单,直接在链表上面进行逆序
容易理解
//
// 反转单链表.cpp
// 反转单链表
//
// Created by lee on 2018/10/20.
// Copyright © 2018年 lee. All rights reserved.
//
#include <iostream>
using namespace std;
struct Node{
int val;
Node *next = NULL;
Node(int x):val(x), next(NULL) {}
};
Node* reverseLinkedList(Node *head){
Node *cur = head;
Node *pre = NULL;
while(cur != NULL){
Node *next = cur->next;
cur->next = pre;
pre = cur;
cur = next;
}
return pre;
}
int main(int argc, const char * argv[]) {
Node *n1 = new Node(1);
Node *n2 = new Node(4);
Node *n3 = new Node(8);
Node *n4 = new Node(7);
n1->next = n2;
n2->next = n3;
n3->next = n4;
Node *it = n1;
while (it != NULL){
cout << it->val << " ";
it = it->next;
}
cout << endl;
Node *res = reverseLinkedList(n1);
while (res != NULL){
cout << res->val << " ";
res = res->next;
}
cout << endl;
return 0;
}
近期评论