【递归、搜索与回溯算法】第七节.257. 二叉树的所有路径和46. 全排列

作者简介:大家好,我是未央;

博客首页:************************************************************************************************************************************************************************************************************************************************************未央.303****************************************************************************************************************************************************************************************************************************************************************

系列专栏:递归、搜索与回溯算法

每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!!!

文章目录

  • 前言
  • 一、二叉树的所有路径
  • 1.1 题目描述
  • 1.2 题目解析
  • 1.2.1 算法原理
  • 1.2.2 代码编写
  • 二、全排列
  • 2.1 题目描述
  • 2.2 题目解析
  • 2.2.1 算法原理
  • 2.2.2 代码编写
  • 总结

前言


一、二叉树的所有路径

1.1 题目描述

描述:

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。


提示:

  • 树中节点的数目在范围 [1, 100]
  • -100 <= Node.val <= 100

示例1:


示例2:


1.2 题目解析

1.2.1 算法原理

本题我们可以采用递归的方法解决;

而要写好一个递归,首先就要知道****递归的三部曲:

第一步:

先找一下是否有和主问题相同的子问题!!!! **----->**关系到函数头的设计;


第二步:

**只需要关心某一个子问题是如何解决即可!!!!****----->**关系到函数体的书写;


第三步:

最后再****注意一下递归函数的出口即可;


所以我们首先就要****思考以上三个问题的解决:

第一步:函数头

我们题目要求

而将两个链表合并就成了和主问题相同的子问题;

而函数头就和题目中给定的函数头一样;


第二步:函数体

我们要找到某一个子问题如何解决;

子问题即:

要解决上述子问题:

(1)

(2)

(3)


第三步:递归出口

递归出口即:


1.2.2 代码编写

代码解析:


二、全排列

2.1 题目描述

描述:
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。


提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同

示例1:


示例2:


示例3:


2.2 题目解析

2.2.1 算法原理

本题我们可以采用递归的方法解决;

而要写好一个递归,首先就要知道****递归的三部曲:

第一步:

先找一下是否有和主问题相同的子问题!!!! **----->**关系到函数头的设计;


第二步:

**只需要关心某一个子问题是如何解决即可!!!!****----->**关系到函数体的书写;


第三步:

最后再****注意一下递归函数的出口即可;


所以我们首先就要****思考以上三个问题的解决:

第一步:函数头

我们题目要求

而将两个链表合并就成了和主问题相同的子问题;

而函数头就和题目中给定的函数头一样;


第二步:函数体

我们要找到某一个子问题如何解决;

子问题即:

要解决上述子问题:

(1)

(2)

(3)


第三步:递归出口

递归出口即:


2.2.2 代码编写

代码解析:


总结

相关推荐
风中的微尘6 小时前
39.网络流入门
开发语言·网络·c++·算法
西红柿维生素7 小时前
JVM相关总结
java·jvm·算法
ChillJavaGuy8 小时前
常见限流算法详解与对比
java·算法·限流算法
sali-tec8 小时前
C# 基于halcon的视觉工作流-章34-环状测量
开发语言·图像处理·算法·计算机视觉·c#
你怎么知道我是队长10 小时前
C语言---循环结构
c语言·开发语言·算法
艾醒10 小时前
大模型面试题剖析:RAG中的文本分割策略
人工智能·算法
纪元A梦12 小时前
贪心算法应用:K-Means++初始化详解
算法·贪心算法·kmeans
_不会dp不改名_12 小时前
leetcode_21 合并两个有序链表
算法·leetcode·链表
mark-puls12 小时前
C语言打印爱心
c语言·开发语言·算法
Python技术极客12 小时前
将 Python 应用打包成 exe 软件,仅需一行代码搞定!
算法