题解 | #从尾到头打印链表#

从尾到头打印链表

http://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035

  1. 使用函数递归的做法,发现会出现stackOverFlow;
  2. 遍历链表节点,存到ArrayList,将ArrayList倒序存到新的ArrayList;
  3. 在2的基础上可以再优化,不需要创建一个新的ArrayList,直接用翻转链表的方式,左右倒转返回。
    ```
    /**
  • public class ListNode {
  • int val;
  • ListNode next = null;
  • ListNode(int val) {
  • this.val = val;
  • }
  • }
  • /
    import java.util.ArrayList;

public class Solution {
public ArrayList<integer> printListFromTailToHead(ListNode listNode) {
ArrayList<integer> printList = new ArrayList();
if (listNode == null) {
return printList;
}
ListNode header = listNode;
while(header != null) {
printList.add(header.val);
header = header.next;
}</integer></integer>

// ArrayList<integer> resultList = new ArrayList();
// for (int i = printList.size() - 1; i >= 0; i--) {
// resultList.add(printList.get(i));
// }
// return resultList;
int size = printList.size();
for (int i = 0; i < size / 2; i++) {
int left = printList.get(i);
int right = printList.get(size - i - 1);
printList.set(i, right);
printList.set(size - i - 1, left);
}
return printList;
}
}
```</integer>

全部评论

相关推荐

邮小鼠:粤嵌的项目水的要死 来我们学校带过课程实习 项目名字是车机终端 实际上就是写了了个gui 还是老师把代码发给你你改改的那种
点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
不敢追175女神:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务