如题 (总结) 首节点也存放了值,所以ListNode t = listNode; 直接从头开始遍历即可. 简单题目,但是构建的时候出了点问题,毕竟需要自己简单测测. 掌握链表的构建方法, 还要根据题目给的一段ListNode 代码来合理修改 . 注意, 面向题解答案编程后发现, 最后的链表末尾是不设置结点的!坑! https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=11156&rp…
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 利用栈“先进后出”的性质,将链表的值存入到栈里,然后将栈里的值存入到构建好的容器里,最后打印容器. class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> result; stack<int> arr; ListNode* p = head; while(p!=N…
题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路 使用栈依次存放输入的链表顺序的值,然后依次出栈便是链表的逆序. 代码 import java.util.ArrayList; import java.util.Stack; /** *描述逆序打印链表 * 输入:一个链表L1 * 输出:按链表值逆序返回一个Arraylist * */ public class ReversePrintList { /**需要定义节点,值和指针**/ static class ListN…
package algorithms; import java.util.ArrayList; import java.util.Stack; /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ /* * 题目描述 * 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList * * 注意 这个跟反转链表…
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) /* struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode(int x) : label(x), next(NULL), random(NULL) {…
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.   class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int>vt…
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. class Solution { public: void reOrderArray(vector<int> &array) { int size = array.size(); vector<int>vt; for(int i = 0; i < size; i++){ if(array…
题目描述 输入一个链表,从尾到头打印链表每个节点的值. /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> vt; while…
题目描述 输入一个链表,从尾到头打印链表每个节点的值.…
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路 第一步,在每个节点的后面插入复制的节点. 第二步,对复制节点的 random 链接进行赋值. 第三步,拆分. 实现 /* public class RandomListNode { int label; RandomListNode next = null; Rand…