前几天去一家公司面试被问到如何将一个单链表的内容反转,当时只是给了一个思路并没有最终完成程序的编写,今天突然觉得我有必要将它实现一下,以备以后面试的时候在被问到,呵呵。
对于这个问题我当时的想法就是用栈的思想去实现的,也就是我首先遍历原来的链表将链表中节点取出来并将它从原来的链表中删除,然后将这个取出来的节点添加到另外一个链表中,在这并不是简单的添加到链表的最后,而是将节点添加到head的后面,这样当原来的链表遍历到最后一个节点的时候,这个节点将被添加到新链表中的第一个节点的位置,这另外一个链表就是反转以后的链表,并且反转后的链表对于原来的链表只是从新分配了一个链表头而已。这样当你将原来的链表遍历了一遍以后,那么反转以后的链表也就生成了。具体的代码如下:
阅读(1186) | 评论(0) | 转发(0) |