剑指Offer 链表相关问题--从尾到头打印链表、合并两个排序的链表
来源:互联网 发布:有了阿里云ems如何建站 编辑:程序博客网 时间:2024/06/05 21:55
面试题5:从尾到头打印链表
题目描述:
输入一个链表,从尾到头打印链表每个节点的值。
题目解析:
方法一:先遍历链表,将每个节点push进栈中,然后再依次弹出。即实现逆序输出
方法二:通过递归的方式(但要考虑链表过长,递归层次过深的情况)
方法三:反转链表,然后遍历输出(不建议采用)
代码:
方法一:
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> result = new ArrayList<>(); if (listNode == null) return result; Stack<ListNode> stack = new Stack<ListNode>(); while (listNode != null) { stack.push(listNode); listNode = listNode.next; } // 输出结果 while (!stack.isEmpty()) { result.add(stack.pop().val); } return result; } }
方法二:
import java.util.ArrayList;import java.util.Stack;public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> result = new ArrayList<>(); printList(listNode, result); return result; } private void printList(ListNode node, ArrayList<Integer> result) { if (node != null) { printList(node.next, result); result.add(node.val); } }}
方法三:反转链表
剑指Offer-题16 反转链表(Java)
问题描述:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
问题分析:
简单比较尾插法即可;
代码:
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { ListNode head = new ListNode(0); ListNode tempList = head; while (list1 != null && list2 != null) { if (list1.val < list2.val) { tempList.next = list1; list1 = list1.next; } else { tempList.next = list2; list2 = list2.next; } tempList = tempList.next; } if (list1 != null) tempList.next = list1; if (list2 != null) tempList.next = list2; return head.next; }}
0 0
- 剑指Offer 链表相关问题--从尾到头打印链表、合并两个排序的链表
- 剑指offer:5-从尾到头打印链表
- [剑指Offer]7.从尾到头打印链表
- 剑指offer:从尾到头打印链表
- 从尾到头打印链表--《剑指offer》
- 剑指Offer:从尾到头打印链表
- 【剑指offer】从尾到头打印链表
- 【剑指offer】Q5:从尾到头打印链表
- 剑指Offer之从尾到头打印链表
- 剑指offer系列源码-从尾到头打印链表
- 剑指offer 05: 从尾到头打印链表
- 剑指offer--从尾到头打印链表
- 剑指offer-5 从尾到头打印链表
- 剑指Offer之 - 从尾到头打印链表
- 剑指offer 5 -从尾到头打印链表
- 剑指offer: 从尾到头打印链表(链表)
- 《剑指Offer》面试题:从尾到头打印链表
- 剑指offer:从尾到头打印链表
- 有关于jQuery load方法在IE Chrome无法加载问题
- 修改Launcher3中的workspace中的应用图标的大小
- ///判断网络状态 (简单版)
- Java锁的种类以及辨析(四):可重入锁
- 把解压缩版的tomcat6注册成服务并设置自启动
- 剑指Offer 链表相关问题--从尾到头打印链表、合并两个排序的链表
- 记录每天学习机器学习的经历,对照机器学习实战这本书
- 包导入基础
- Makefile 中:= ?= += =的区别
- Clone Graph
- 牛逼的大学教育果然非常受用
- iOS开发之图片查看器
- 南昌大学软件学院大神养成计划脚印-11.16
- Java用ArrayList实现栈