您的位置:首页 > 其它

逆序链表输出

2013-09-07 20:42 218 查看
题目描述

将输入的一个单向链表,逆序后输出链表中的值。
输入

整数链表
输出

整数链表
样例输入

1,2,3,4,5
样例输出

5,4,3,2,1
提示

注意链表指针的处理,防止空指针,注意链表长度

代码输入部分参考:#include "func.h"

#include <stdio.h>

#include <stdlib.h>

/* 请按照要求实现下列函数 */

/* 请完成如下函数即可,输入为指向链表的指针,经过函数处理,链表首地址不变,内容倒序 */

void converse(ListNode **head)

{

}

/* main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出*/

/* 当前你可以使用其他方法测试,只要保证最终程序能正确执行即可 */

/* 该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响*/

void TestEntry()

{

/* TODO: 请测试时改变改用例 */

ListNode *head = new ListNode;

head->value = 1;

head->next = new ListNode;

head->next->value = 2;

head->next->next = NULL;

/* TODO: 调用被测函数 */

converse(&head);

/* TODO: 执行完成后可比较是否是你认为正确的值 */

ListNode *tmp = head;

while (tmp)

{

printf("%d ",tmp->value);

ListNode *tmp2 = tmp;

tmp = tmp->next;

delete tmp2;

}

head = NULL;

}
地区

北京研究所
public class Node<T>{
public T data;
public Node<T> next;
public Node(T data,Node<T> next){
this.data=data;
this.next=next;
}
public Node(){
this(null,null);
}
}


public class ListNode{
Node<Integer> head;
public ListNode(){
this.head=new Node<Integer>();
}
public ListNode(int[] element){
this();
Node<Integer> rear=this.head;
for(int i=0;i<element.length;i++){
rear.next=new Node<Integer>(element[i],null);
rear=rear.next;
}
}
public void reverse(ListNode lNode){
Node<Integer> p=lNode.head.next,font=null,succ=null;
while(p!=null){
succ=p.next;
p.next=font;
font=p;
p=succ;
}
lNode.head.next=font;
}

public String toString(){
String str="(";
Node<Integer> p=this.head.next;
while(p!=null){
str+=String.valueOf(p.data);
if(p.next!=null)
str+=",";
p=p.next;
}
str+=")";
return str;
}
}


逆序函数:
public static void converse(ListNode lNode){
System.out.println("逆序前:"+lNode);
ListNode listNode=new ListNode();
listNode.reverse(lNode);
System.out.println("逆序后:"+lNode);
}


测试入口:
public static void TestEntry(){//测试入口,这里mian函数隐藏了
int[] input=new int[]{1,2,3,4,5};
ListNode lNode=new ListNode(input);//输入整数链表
converse(lNode);//输出整数链表
}
输出结果:
逆序前:(1,2,3,4,5)
逆序后:(5,4,3,2,1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: