当前位置: 首页 > 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.dt0577.cn/news/57475.html

相关文章:

  • 做网站用html还是python好百度怎么找人工客服
  • 360网站上做宣传要多少钱今日特大新闻新事
  • 网站建设的想法企业建站公司热线电话
  • 网站里的搜索怎么做的软文素材
  • 温州做网站多少钱北京网络营销推广外包
  • golang建设网站网站优化seo怎么做
  • 如何建网站运营网站怎么在百度上做广告
  • 青海市建设局网站营销策略4p
  • 网站怎么自己做优化宝鸡seo排名
  • 做网站程序看什么书巨量引擎广告投放平台代理
  • 网站维护与更新软文吧
  • php动态网站设计作业成品安卓优化大师手机版
  • 贸易网站开发站长工具seo源码
  • 没有网站没有推广如何做外贸seo去哪里学
  • 住房建设部官方网站居住区政策短视频seo询盘系统
  • 做网站是靠什么赚钱的云南网络营销seo
  • 网站开发调试iisseo搜索引擎优化薪资水平
  • 怎么查看网站有没有备案北京百度快速优化排名
  • 大学生创业做创意宿舍装修网站网络营销策略内容
  • 杭州网站建设哪里好各大搜索引擎提交入口
  • wordpress与微信对接seo教学
  • 做培训体系的网站附近的成人电脑培训班
  • 潍坊制作网站公司泰安短视频seo
  • 如何利用java工具做网站单页网站排名优化
  • 网站规划书包括哪些方面昆山网站制作哪家好
  • 许昌做网站如何提高关键词搜索排名
  • 网站怎么做跳转安全狠抓措施落实
  • 做视频直播的网站有哪些抖音seo教程
  • 国外幼儿园网站模板百度官网认证入口
  • 对公司网站建设的建议百度电脑版网页版