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

网络建站东北下载一个百度导航

网络建站东北,下载一个百度导航,网站三级页怎么做,网站开发 演讲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/404259.html

相关文章:

  • 重庆网站竞价推广课程
  • 天元建设集团招聘官网优化落实疫情防控
  • 企业可以在哪些网站做免费宣传网址导航该如何推广
  • 海淀企业网站建设网站关键词排名
  • 怎么做网站变更今日刚刚发生的重大新闻
  • 用jsp源码做网站福建seo搜索引擎优化
  • 用什么做公司宣传网站快速排名上
  • 建设网站图片荥阳网站优化公司
  • 月子会所网站建设方案seo搜索引擎优化内容
  • 企业做自己的网站要注意什么处理事件seo软件
  • 创建论坛网站网站设计公司排行榜
  • 黑龙江省建设工程网陕西seo关键词优化外包
  • 购物网站建设价格一览表怎么免费建立网站
  • 茶叶网站建设公司短视频seo优化排名
  • 彩票网站代理怎么做免费发布广告信息的网站
  • 长春网站建设费用百度推广网址
  • 西安做网站招聘模板建站哪个平台好
  • wordpress 搜索不能用网站推广优化招聘
  • 国家建设部网站平台中国万网域名注册官网
  • 专业网站建设好不好网站注册步骤
  • 做网站设计难吗外贸推广平台排名
  • 济南长清网站建设百度推广工具
  • 石家庄做网站科技公司网络项目资源网
  • 建设好网站的在线沟通功能易思企业网站管理系统
  • b2b网站开发报价windows优化大师怎么样
  • 长春火车站附近有什么好玩的地方百度小说排行榜前十
  • 工商做年报网站郑州网站优化seo
  • 怎么用企业网站做营销app优化建议
  • 百度云搜索引擎入口 百度网盘seo黑帽有哪些技术
  • 微平台公众号快速优化排名公司推荐