您的位置:首页 > 其它

递归实现链表反转

2016-09-03 18:41 429 查看
// ConsoleApplication4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
typedef struct Node{
int value;
struct Node* next;
}TreeNode;

TreeNode *reverse(TreeNode *node,TreeNode *head)
{
if (node->next == NULL)
{
head = node;
return node;
}
TreeNode *p = reverse(node->next,head);
p->next = node;
node->next = NULL;
return node;
}
int _tmain(int argc, _TCHAR* argv[])
{
TreeNode *l,*head;
TreeNode *p;

l = (TreeNode *)malloc(sizeof(TreeNode));
l->value = 1;
head = l;

p = (TreeNode *)malloc(sizeof(TreeNode));
p->value = 2;
l->next = p;
l = p;
p = (TreeNode *)malloc(sizeof(TreeNode));
p->value = 3;
l->next = p;
l = p;
p = (TreeNode *)malloc(sizeof(TreeNode));
p->value = 4;
l->next = p;
l = p;
p = (TreeNode *)malloc(sizeof(TreeNode));
p->value = 5;
l->next = p;
l = p;
p = (TreeNode *)malloc(sizeof(TreeNode));
p->value = 6;
l->next = p;
l = p;
l->next = NULL;
p = reverse(head,l);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: