首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

微软面试题_四

2012-11-09 
微软面试题_4题目:怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?分析:将第一个结

微软面试题_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

热点排行