链表编程题专题--逆序链表
2017-08-24 09:40
239 查看
1.题目描述
输入一个链表,从尾到头打印链表每个节点的值。(来源于牛客网)2.解法
重点是如何能保持各个节点不丢失,节点之间不成环,逻辑简单,考核代码实现的能力。思路:要记录下当前节点listNode、下一个节点nextNode以及再下一个节点temp,然后将nextNode的next改为当前节点listNode,这样就实现了两个节点逆序。接下来让listNode改为nextNode,nextNode改为temp,也就是listNode和nextNode往后移一位,并重新给temp赋值为新nextNode的next节点,这样实现前两个元素逆序的同时,能保留住第三个元素不丢失。注意:第一次头结点和第二个节点逆序前,要先将头结点的next赋空,不然nextNode.next = listNode的时候会使前两个节点成环。
具体代码如下:
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; public class Solution { public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> arr = new ArrayList<>(); if (listNode == null) { return arr; } ListNode nextNode = listNode.next; listNode.next = null; while(nextNode != null) { ListNode temp = nextNode.next; nextNode.next = listNode; listNode = nextNode; nextNode = temp; if(temp == null){ break; } } while(listNode != null){ arr.add(listNode.val); listNode = listNode.next; } return arr; } }
相关文章推荐
- 链表编程题专题--Reverse Nodes in k-Group(最后几个节点不足一组的不逆序)
- 链表编程专题--分组逆序链表
- 面试常见编程题专题一:链表
- 链表编程题专题--删除重复节点
- 数据结构实验之链表二:逆序建立链表
- 数据结构实验之链表二:逆序建立链表
- 链表逆序
- 逆序输出链表
- 算法题18 逆序(字符串、整数、单向链表)
- 链表——逆序/反转
- 链表逆序的实现方法
- 单链表逆序输出
- 单链表逆序 多种方法总结
- 链表的实现以及合并,排序,逆序,等
- C语言实现单链表逆序与逆序输出实例
- 数据结构实验之链表二:逆序建立链表
- 单向链表逆序
- 删除链表中的重复节点、剩余节点逆序输出
- 几个链表逆序的实现方法
- 链表逆序