当前位置: 首页 > news >正文

镇江做网站多少钱股票指数是什么意思

镇江做网站多少钱,股票指数是什么意思,专业建设网站的企业,做网站建设怎么跑客户文章目录 [toc]问题描述数据范围示例 C代码实现使用栈实现(不符合要求,仅作为思路) 解题思路 - 原地反转链表步骤 C语言代码实现 以前只用过C刷过代码题目,现在试着用C语言刷下 问题描述 给定一个单链表的头结点 pHead&#xff…

文章目录

      • @[toc]
      • 问题描述
        • 数据范围
        • 示例
      • C++代码实现
        • 使用栈实现(不符合要求,仅作为思路)
      • 解题思路 - 原地反转链表
        • 步骤
      • C语言代码实现

以前只用过C++刷过代码题目,现在试着用C语言刷下

问题描述

给定一个单链表的头结点 pHead,反转该链表后返回新链表的表头。
在这里插入图片描述

数据范围
  • 链表长度 0 ≤ n ≤ 1000 0 \leq n \leq 1000 0n1000
  • 要求:空间复杂度 O ( 1 ) O(1) O(1),时间复杂度 O ( n ) O(n) O(n)
示例
  1. 输入:{1,2,3}
    输出:{3,2,1}

  2. 输入:{}
    输出:{}

如果链表为空,则直接返回空。


C++代码实现

最开始尝试用 C++ 的 实现,结果想到C语言不能直接调用栈,玛德。但考虑到题目要求空间复杂度为 O ( 1 ) O(1) O(1),栈的实现并不符合要求。

使用栈实现(不符合要求,仅作为思路)
#include <stack>
#include <iostream>
using namespace std;// 定义链表节点
struct ListNode {int val;struct ListNode* next;ListNode(int x) : val(x), next(nullptr) {}
};// 使用栈实现链表反转
struct ListNode* ReverseList(struct ListNode* head) {if (head == nullptr)  // 空链表直接返回return head;stack<ListNode*> st;  // 定义一个栈ListNode* cur = head;// 将所有节点压入栈while (cur != nullptr) {st.push(cur);cur = cur->next;}// 弹出栈顶元素作为新链表头ListNode* newHead = st.top();st.pop();cur = newHead;// 重新连接链表while (!st.empty()) {cur->next = st.top();st.pop();cur = cur->next;}cur->next = nullptr;  // 终止链表return newHead;
}

此代码能实现反转,但使用了辅助栈,空间复杂度为 O ( n ) O(n) O(n),不符合题目要求。


解题思路 - 原地反转链表

为了满足空间复杂度 O ( 1 ) O(1) O(1) 的要求,我们使用三个指针实现链表的 原地反转

步骤
  1. 初始化

    • prev:指向当前节点的前驱节点(初始为 NULL)。
    • cur:指向当前节点。
    • next:临时保存当前节点的后继节点。
  2. 反转过程

    • 逐一将当前节点的 next 指针指向 prev
    • prevcur 向后移动。
  3. 结束条件

    • cur 遍历到链表尾部(即 cur ->next== NULL),同时别忘了,把最后一个结点也给处理了,cur->next=pre。链表反转完成,此时 cur 即为新链表头。

C语言代码实现

/*** struct ListNode {*	int val;*	struct ListNode *next;* };*/
/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head ListNode类 * @return ListNode类*/
struct ListNode* ReverseList(struct ListNode* head ) {if(head==NULL)return head;struct ListNode* cur=head;struct ListNode* pre=NULL;struct ListNode* next=cur->next;while(cur->next!=NULL){cur->next=pre;pre=cur;cur=next;next=cur->next;}cur->next=pre;return cur;// write code here
}

轻松拿捏。

http://www.zhongyajixie.com/news/15639.html

相关文章:

  • seo案例佛山优化推广
  • 用xp做网站是否先搭建iis互联网精准营销
  • 河北网站建设与管理seo搜索引擎优化是做什么的
  • 网站设计用什么做广东疫情最新消息今天又封了
  • 网站制作哪家专业手机黄页怎么找
  • 中国日本韩国美国seo网站排名助手
  • 冠辰网站互动营销的案例有哪些
  • 湖南建设工程考试网合肥seo建站
  • 北镇做网站暴疯团队seo课程
  • 网站做跳转的意义如何创建属于自己的网站
  • 即给做网站又给我们做推广的公司呢seo网站建设
  • 网站后台图片不显示北京谷歌优化
  • 企业网站查询系统官网厦门网站建设公司名单
  • wordpress能开发app汕头seo服务
  • 昆山建设局网站收录是什么意思
  • 开发者门户网站是什么意思海外推广方法有哪些
  • 网站后台建设软件yahoo引擎入口
  • 上海人才引进网站新闻株洲最新
  • 烟台网站建设哪家好呢谷歌浏览器下载手机版安卓
  • 做网站建设的名声很差吗阿里云搜索引擎入口
  • 大连网站建设价格怎么制作一个网页
  • 设计电子商务网站主页聚合搜索引擎接口
  • 上海公司网站制作价格seo信息优化
  • 网站改版 删除栏目湖南疫情最新消息今天
  • 做网站su软件广告推广平台网站有哪些
  • 正规的家居行业网站开发微指数官网
  • 慕课联盟网站开发实战友妙招链接怎么弄
  • 郑州网站制作方案域名查询注册商
  • 做第三方支付网站违法吗推广软文怎么写样板
  • 襄阳网站建设哪个好站长之家备案查询