会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132850个问题
Python 全系列/第一阶段:Python入门/编程基本概念 19486楼
JAVA 全系列/预科阶段:职业规划/学习方法/JAVA 技术体系介绍和学习方法 19489楼
Python 全系列/第一阶段:Python入门/编程基本概念 19490楼
Python 全系列/第十五阶段:数据结构与算法/算法与数据结构(旧) 19491楼
Python 全系列/第一阶段:Python入门/编程基本概念 19492楼
Python 全系列/第一阶段:Python入门/编程基本概念 19494楼
JAVA 全系列/第十一阶段:消息中间件与高并发处理/RabbitMQ(旧) 19496楼
Python 全系列/第一阶段:Python入门/面向对象 19497楼

tx_lcn.zip

完全按照视频的代码写的,写了好几遍class_manager项目pom文件中实体类的依赖还有eureka的依赖找不到,您看一下您那边是不是一样的问题图片.png


JAVA 全系列/第二十五阶段:分布式解决方案/TX-LCN 19498楼

老师好,关于二叉树遍历的递归算法:



/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p== null && q == null) return true;
        if(p==null || q==null) return false;
        
        if(p.val!= q.val) return false;
        
        return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
        
    }
}




因为之前关于递归只讲了阶乘的例子,所以这里用true or false时候并不太懂,主要有两个问题:


(1)

当左右节点的深度不同时,最终的判断的终止条件在哪里?

比如一个二叉树,它的左子树(p)的深度为2,右子数(q)的深度为5.(如下图)

那么,该递归的终止条件,是深度为2时,p.left p.right都是为null,跳出递归?还是到深度为5时,q的子节点也都遍历完成后,才跳出递归?



IMG_0977.jpg



(2)

关于boolean类型递归是如何作用的。

之前关于递归只讲到阶乘,是递归直到调用到n=1 return 1, 才会一点点向上返回每次递归调用的值。



IMG_0976.jpg









但是,这里就不是很懂是如何作用的,假设只有最后的p.left和q.left不同,(如下图)

那么,是如阶乘的算法一样,第一层是先开始isSameTree()方法,

到第二层后,判断为false && true, 所以return false,

然后关闭第二层栈堆,然后到第一层, 判断为 true && true, return true

最后结束程序?

那么这样的话,不就是return了两个值?分别是false和true?

这里的递归倒是是怎么作用的?谢谢



IMG_0978.jpg








JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 19500楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637