首页 > 代码库 > 从尾到头打印链表
从尾到头打印链表
本题目有两种实现思路,一种采用栈另外一种采用递归的方式进行实现。此题其实考察的目的在于java中链表的实现,此外此题还可以扩展到链表的插入删除,指定位置的插入以及删除,这个点以后再进行补充
package jianzhi_offer; import java.util.Stack; public class PrintListReversingly { public static void PrintListReversingly(ListNode phead){ //此时是按照栈的方式进行打印的,此时熟悉了链表的写法还有链表的构建,另外还可以采用递归的方式进行打印,方法见下面 Stack<ListNode> stack = new Stack(); while(phead!=null){ stack.push(phead); phead=phead.next; } while(!stack.empty()){ System.out.println(stack.pop().value); } } public static void PrintListReversingly2(ListNode phead){ //此时是按照栈的方式进行打印的,此时熟悉了链表的写法还有链表的构建,另外还可以采用递归的方式进行打印,方法见下面 if(phead!=null){ if(phead.next!=null){ PrintListReversingly2(phead.next); System.out.println(phead.value); }else{ System.out.println(phead.value); } } } public static void main(String []args){ ListNode node1=new ListNode(4); ListNode node2=new ListNode(3); ListNode node3=new ListNode(5); node1.next=node2; node2.next=node3; node3.next=null; PrintListReversingly(node1); PrintListReversingly2(node1); } }
package jianzhi_offer; public class ListNode<T> { T value; ListNode next; public ListNode(){ this.value=http://www.mamicode.com/value;>
从尾到头打印链表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。