递归解题核心思想

本文深入探讨了递归解题的核心思想,包括递归终止条件、返回信息及任务。通过三个实例——二叉树的最大深度、两两交换链表节点和判断二叉树是否平衡——详细阐述了递归应用,提供了相关代码实现。
摘要由CSDN通过智能技术生成

递归解题核心思想

1、递归要考虑的三个问题:

  • 递归应该在什么时候结束?
  • 我应该返回什么信息给上层?
  • 在这一次的递归中,要完成什么任务?

递归每一层的功能都是一样的,所以只要解决了这三个问题,递归的问题就解决了

2、举例说明:

2.1、二叉树的最大深度

1、什么时候结束递归?

​ 当遍历到树的左右节点都为空的时候,递归就结束了!

2、返回给上层的是什么?

​ 因为是对树深度的遍历,所以返回给上层的,自然是这颗子树的深度

3、本次递归中,要完成什么任务?

​ 每一次的递归,都是在获取树的深度,可能左右子树都存在,那么自然要返回最高的那颗树的值,同时,要加上1,因为本身的这棵树,也属于一层,当遍历到自身为null的时候,就返回0(不用+1)

4、代码如下:

public int maxDepth(TreeNode root) {
   
        if (root == null){
   
            return 0;
        }
        int left = maxDepth(root.left
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值