首页 > 其他 > 详细

。。。剑指Offer之——从尾到头打印链表。。。

时间:2019-04-25 11:55:17      阅读:124      评论:0      收藏:0      [点我收藏+]
 1 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
 2 //        定义一个ArrayList,用来存放翻转链表结果
 3         ArrayList<Integer> list = new ArrayList<>();
 4         if (listNode == null) {
 5             return list;
 6         }
 7         ListNode p = listNode;//p指向头指针
 8 //        1、每次迭代一个p,就把p的数值加入到list当中
 9 //        2、循环结束的时候,list里面存放的内容是链表的顺序排列
10         while (p != null) {
11             list.add(p.val);
12             p = p.next;
13         }
14         int length = list.size();
15 //        用i指向list的最前面,用j指向list的最后面
16         int i = 0, j = length - 1;
17 //        1、将i指向的内容与j指向的内容进行交换
18 //        2、循环结束之后,list里面的内容就翻转过来了
19         while (i < j) {
20             int temp = list.get(i);
21             list.set(i, list.get(j));
22             list.set(j, temp);
23             i++;
24             j--;
25         }
26 //        返回最终结果,list里面的内容已经翻转过来了
27         return list;
28     }


1 public class ListNode {
2     int val;
3     ListNode next = null;
4 
5     ListNode(int val) {
6         this.val = val;
7     }
8 }

 

 

 

。。。剑指Offer之——从尾到头打印链表。。。

原文:https://www.cnblogs.com/yingmeng/p/10767441.html

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