烟台网站建设询问臻动传媒,济南经三路专业做网站,网页设计大概需要多少钱,软件开发工时费一般是多少文章目录题目描述思路 代码二刷题目描述 思路 代码
一次遍历#xff1a;翻转链表 记录长度二次遍历#xff1a;遍历翻转后的链表#xff0c;更新数组O(n) O(1)
/*** Definition for singly-linked list.* public class ListNode {* int val;* …
文章目录题目描述思路 代码二刷题目描述 思路 代码
一次遍历翻转链表 记录长度二次遍历遍历翻转后的链表更新数组O(n) O(1)
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/
class Solution {public int[] reversePrint(ListNode head) {// O(n) O(1)// 一次遍历翻转链表 记录长度ListNode now head;ListNode next null;ListNode temp null;int len 0;while(now ! null){temp now.next;now.next next;next now;now temp;len;}// 二次遍历赋值int[] ans new int[len];for(int i 0; i len; i, next next.next){ans[i] next.val;}return ans;}
}二刷
其实不用翻转也行 从后往前填即可
class Solution {public int[] reversePrint(ListNode head) {int len 0;ListNode temp head;while(temp ! null) {len;temp temp.next;}int[] ans new int[len];temp head;for(int i len - 1; i 0; i--, temp temp.next) {ans[i] temp.val;}return ans;}
}