读书人

微软面试题_四

发布时间: 2012-11-09 10:18:47 作者: rapoo

微软面试题_4
题目:怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?
分析:将第一个结点设为当前节点,依次将当前节点的下一节点删除,再将删除节点头插入(插入到头结点)。例如:head->1->2->3->4->5,将1设为当前节点,删除当前节点(1)的下一节点(2),再将2头插入,结果为head->2->1->3->4->5;然后再将当前节点的下一节点(3)删除,将3头插入,插入后为head->3->2->1->4->5。...

public static boolean reverseLink( LinkedNode head ) {if( head.next == null ) {/* 空链表 */return false;} else {LinkedNode nex;LinkedNode cur = head.next;while( cur.next != null ) {nex = cur.next;/* 删除节点next */cur.next = nex.next;/* 节点next头插入 */nex.next = head.next;head.next = nex;}return true;}}

测试用例:1->2->3->4->5
测试结果:5->4->3->2->1

读书人网 >编程

热点推荐