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

宁波企业如何建网站无排名优化

宁波企业如何建网站,无排名优化,wordpress的网站后台,一元云购网站开发rust函数递归在14中已经提到,接下来我们把206.反转链表,用递归法实现 递归函数通常包含两个主要部分: 基准条件(Base Case):递归终止的条件,避免无限递归。 递归步骤(Recursive Ste…

rust函数递归在14中已经提到,接下来我们把206.反转链表,用递归法实现

递归函数通常包含两个主要部分:

        基准条件(Base Case):递归终止的条件,避免无限递归。

        递归步骤(Recursive Step):将问题分解为更小的子问题,并调用自身来解决这些子问题。

 //Definition for singly-linked list.#[derive(PartialEq, Eq, Clone, Debug)]pub struct ListNode {pub val: i32,pub next: Option<Box<ListNode>>}impl ListNode {#[inline]fn new(val: i32) -> Self {ListNode {next: None,val}}}pub fn reverse(mut pre : Option<Box<ListNode>>,mut cur : Option<Box<ListNode>>) -> Option<Box<ListNode>> {if let Some(mut node) = cur.take() {//如果不为空使用temp先保存node.next, 然后让node.next指向prelet mut temp = node.next;node.next = pre;//递归调用return reverse(Some(node), temp);    } else {pre}
}
pub fn reverse_list(head: Option<Box<ListNode>>) -> Option<Box<ListNode>> {let mut pre: Option<Box<ListNode>> = None;return reverse(pre, head);
}// 辅助函数:打印链表内容不转移所有权
fn print_list(head: Option<&Box<ListNode>>) {match head {Some(node) => {let mut current = Some(node); // 初始化当前节点指针while let Some(node) = current {print!("{} -> ", node.val);current = node.next.as_ref(); // 使用 as_ref() 获取对 next 的引用}println!("None");}None => {println!("链表为空");}}
}// 函数:将 i32 数组转换为链表并返回头节点
fn array_to_list(arr: Vec<i32>) -> Option<Box<ListNode>> {let mut head: Option<Box<ListNode>> = None;let mut current: &mut Option<Box<ListNode>> = &mut head;for &val in arr.iter().rev() { // 从后往前构建链表let new_node = Box::new(ListNode {val,next: current.take(), // 取出当前节点并设置为新节点的 next});*current = Some(new_node); // 更新当前节点current = &mut head;       // 指向头节点}head
}fn main() { let arr = vec![1, 2, 3, 4, 5];// 调用函数创建链表let head = array_to_list(arr);// 打印链表print_list(head.as_ref()); // 使用 as_ref() 避免转移所有权let node = reverse_list(head);print_list(node.as_ref());}

总结,用递归首先需要确定终止条件,在翻转链表中,终止条件就是cur为空,然后返回pre, 如果不为空先保存node.next(cur.next)到临时变量temp中,然后node.next=pre,最后递归直到为空返回

http://www.dtcms.com/wzjs/263937.html

相关文章:

  • 专注网站建设微信开发西安seo排名公司
  • 上海建设局网站深圳网站优化平台
  • 域名通过了才可以做网站吗赣州seo外包怎么收费
  • 河南网站备案系统短信长春网站优化团队
  • 大型网站建设建设公司seowhy教研室
  • 宁德蕉城城乡建设网站宁波seo推荐优化
  • 嘉兴网站建设推广免费百度下载
  • 寻找基础微网站开发站长工具 站长之家
  • 做二手手机交易网站公众号怎么推广
  • 网站设计网站建设公司旺道seo优化软件
  • 东莞网站制作有名 乐云践新百度搜索排名怎么收费
  • 个人商城网站建设关于市场营销的培训课程
  • 怎么做网站建设赚钱做app软件大概多少钱
  • 济南免费做网站交换友情链接的渠道
  • 设计头条官网企业关键词排名优化网址
  • 可信赖的做pc端网站怎么申请自己的域名
  • 怎么做网站的搜索引擎网站怎么优化推广
  • 网站开发研开发网站需要多少钱
  • 机械产品做哪个网站百度安全中心
  • 深圳公共资源交易网招标公告南通seo网站优化软件
  • 制作php网站网站seo公司
  • 成都制作网页整站seo外包
  • 天津网站建设工作室学习软件
  • 爱站网挖掘工具电脑优化软件排行榜
  • 个人网站做短视频百度的营销中心上班怎么样
  • 台州网站建设网站app推广是做什么的
  • 网站建设华科技公司做个电商平台要多少钱
  • 网站制作公司优势搜索引擎优化的实验结果分析
  • 沈阳免费建网站怎样建网站卖东西
  • 导出wordpress文章seo关键词优化公司