首页 > 其他 > 详细

剑指offer3

时间:2018-03-30 18:01:15      阅读:202      评论:0      收藏:0      [点我收藏+]

输入一个链表,从尾到头打印链表每个节点的值。

思路:首先借助一个栈,遍历链表中的每一个值,然后存储到栈中,利用栈的先进后出特点,然后添加到数组中返回。

package demo3;

import java.util.ArrayList;
import java.util.Stack;

public class Main {

	static class ListNode{
		int val;
		ListNode next = null;
		ListNode(int val){
			this.val = val;
		}
	}
	
	public static void main(String[] args) {
		ListNode node1 = new ListNode(1);
		ListNode node2 = new ListNode(2);
		ListNode node3 = new ListNode(3);
		node1.next = node2;
		node2.next=node3;
		node3.next = null;
		
		ArrayList result = printListFromTailToHead(node1);
		print(result);
		
	}
	
	public static void print(ArrayList result){
		if (result != null && result.size()>0) {
			for (int i=0;i<result.size();i++) {
				System.out.print(result.get(i)+" ");
			}
			System.out.println();
		}
	}
	
	
	public static ArrayList printListFromTailToHead(ListNode listNode){
		ArrayList array = new ArrayList();
		//借助栈
		Stack stack = new Stack();
		
		if (listNode == null) {
			return array;
		}
		
		while (listNode != null) {//节点不为空
			stack.push(listNode.val);
			listNode = listNode.next;
		}
		
		while (!stack.isEmpty()) {
			array.add(stack.pop());
		}
		
		return array;
	}
	
}

 

  

 

剑指offer3

原文:https://www.cnblogs.com/airycode/p/8677523.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!