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

c 手机网模板网站电商运营推广

c 手机网模板网站,电商运营推广,淡水网站建设,学做蛋糕哪个网站好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/166959.html

相关文章:

  • 房屋 哪个网站做的最好阿里云空间+1对1私人专属设计师
  • seo关键词快速提升软件官网百度seo多久能优化关键词
  • 阿里云建站百度收录吗seo百度seo排名优化软件
  • 网站 建设 后台管理程序成人职业培训机构
  • 百度网网站建设的目标推广学院seo教程
  • 学做网站去哪学网店推广联盟
  • 国内做外单的网站有哪些资料最新旅游热点
  • 北京网站建设工作室哪家好疫情防控最新信息
  • 村级网站建设 不断增强网站优化策划书
  • 长沙seo排名公司天津seo诊断
  • logo设计网站哪个好一些镇江百度关键词优化
  • 公司做的网站费用计入什么科目域名申请的流程
  • 移动端的网站模板个人建网站步骤
  • 建设个人博客网站南安网站建设
  • 建设公司怎么做网站运营做一个自己的网站
  • 做网站怎么兼职长沙百度快速优化排名
  • ftp网站备份百度指数数据分析平台
  • 深圳市建设工程质量检测网站网站的宣传推广方式
  • 做空间的网站搜索引擎排名google
  • 怎样获得做网站的客户厦门网站流量优化价格
  • 优惠券怎做网站免费推广引流软件
  • php建网站教程近期国内新闻摘抄
  • 武汉建设网站windows优化大师收费吗
  • 微信扫码即可打开的网站如何做百度推广技巧
  • 图书馆网站建设背景跨境电商平台有哪些?
  • 个人站长怎么做企业网站软文推广发稿平台
  • 做网站建设需要什么工具搜索引擎推广的三种方式
  • wp网站源码外链
  • 做网站时无法上传图片google官网注册
  • 全球华设计鼓楼网页seo搜索引擎优化