【递归、搜索与回溯算法】第七节.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 代码编写

代码解析:


总结

相关推荐
Savior`L3 小时前
二分算法及常见用法
数据结构·c++·算法
mmz12074 小时前
前缀和问题(c++)
c++·算法·图论
努力学算法的蒟蒻4 小时前
day27(12.7)——leetcode面试经典150
算法·leetcode·面试
甄心爱学习5 小时前
CSP认证 备考(python)
数据结构·python·算法·动态规划
kyle~5 小时前
排序---常用排序算法汇总
数据结构·算法·排序算法
AndrewHZ6 小时前
【遥感图像入门】DEM数据处理核心算法与Python实操指南
图像处理·python·算法·dem·高程数据·遥感图像·差值算法
CoderYanger6 小时前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节
有时间要学习6 小时前
面试150——第二周
数据结构·算法·leetcode
liu****6 小时前
3.链表讲解
c语言·开发语言·数据结构·算法·链表