您的位置:首页 > 职场人生

剑指Offer面试题6:从尾到头打印链表

2018-01-19 18:28 489 查看
思路:每经过一个节点把该节点放入栈中,遍历完整个链表后,栈顶一次弹出节点元素,向list中添加元素,返回list

public class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
this.val = val;
}
/*
* offer 3:输入一个链表,从尾到头打印链表每个节点的值。栈(后进先出)
*/
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<>();
//链表非空就压栈
while(listNode!=null){
stack.push(listNode.val);
//链表的下一个节点指向listNode
listNode=listNode.next;
}
ArrayList<Integer> list=new ArrayList<Integer>();
//栈非空就出栈
while(!stack.isEmpty()){
list.add(stack.pop());
}
return list;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: