zoukankan      html  css  js  c++  java
  • 。。。剑指Offer之——从尾到头打印链表。。。

     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 }
    
    
    
     
  • 相关阅读:
    移植spdylay到libcurl
    用到的C++标准库
    libcurl底层调用逻辑
    socket编程
    linux的一些机制Signal, Fork,
    openssl 编程
    对称加密,非对称加密
    ajax提交整个form表单
    一道基础的for语句js编译过程
    怎样将浏览器一句话变为文本编辑器
  • 原文地址:https://www.cnblogs.com/yingmeng/p/10767441.html
Copyright © 2011-2022 走看看