class LNode { public LNode next; public int data; } /*逆置链表*/ class Nizhi { private static LNode head = new LNode();; private static LNode node; private static LNode tail; private static int index; private static LNode newhead = new LNode(); public st…
单链表的逆置是一个非常经典的问题,这里利用两个思想进行解决. 首先,我们需要看下原理图,其实两个思想都是一样的,都是使后一个的节点的 next 指针指向前一个节点,依次递推,直到第二个节点指向第一个节点,第一个节点的 next 指针指向 NULL. 第一种方法: 在链表往前走的过程中,记录前一个节点,当前节点和后一个节点,并使当前节点的 next 指针指向前一个节点,直到最后一个节点指向倒数第二个节点 算法实现如下: void reve…
1074 Reversing Linked List (25 分) Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must outp…
问题: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return –321 Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have already thought through this! If the in…
顺序表应用4:元素位置互换之逆置算法 Time Limit: 10 ms Memory Limit: 570 KiB Submit Statistic Discuss Problem Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N).空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后…
插入新的数字重新排序 分析:将新的数字与已经排序好的数组中的数字一一比较,直到找到插入点,然后将插入点以后的数字都向后移动一个单位(a[i+1]=a[i]),然后将数据插入即可. 代码: #include<iostream> using namespace std; int main(){ int a[12];//定义用于存储数字的数组 int n;//输入的新的数字 int i=0,j=0,k=0;//排序用到的变量 cout<<"please input ten in…