树
Dee dadi
从入门到跑路
展开
-
从上到下打印二叉树1
1. 首先判断根节点是否为空,为空直接返回一个长度为0的数组2. 创建一个队列(先入先出)并将root节点加入队列中3. 创建一个Arraylist(底层是数组) 用来存放队列中弹出的节点的值4. 利用队列为空为终止条件,在循环里判断根节点是否有叶子节点,有则加入队列中,每弹出一个节点,将其加入数组中5. 创建一个数组用来展示ArrayList的节点的值/** * Definition for a binary tree node. * public class TreeNode { *原创 2021-05-24 17:09:13 · 100 阅读 · 0 评论 -
B树是否是A树的子结构
思路:1. 首先判断A树和B树是否为空,recur递归方法的作用主要是找到A树和B树相对应的根节点,如果确定该根节点和B的根节点相同则继续使用recur方法递归调用,(1)首先判断B==null,越过B的叶子结点了,意思是B中的节点全部匹配,直接返回true2. if(A==null||A.val!=B.val){ return false; } 意思是遍历了A中的所有节点仍然没有匹配||A的值和B的值不同,则直接返回false;3. 而这里使用isS原创 2021-05-24 16:25:16 · 394 阅读 · 0 评论 -
27. 二叉树的镜像
方法一:递归解析:1.首先确定终止条件 当root为空时,则直接返回null终止2 在每次递归的时候比如mirrorTree(root.left)、首先根节点的左子节点在递归中成为了根节点,以此往下递归交换左右叶子结点3.其中定义TreeNode temp=root.right; 是为了记住原先的右子节点/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeN原创 2021-05-07 00:00:33 · 73 阅读 · 0 评论 -
对称二叉树
解题步骤:1. 首先利用三目运算符判断根节点是否为空,是直接返回true.否调用recur递归函数2. 判断为true的条件是两个节点同时越过叶子节点,判断为false的条件是左右两个节点任意一个节点越过叶子结点||节点的值不想同。可直接返回false;3. 递归遍历4. 相互比较的节点示意图/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode l原创 2021-05-24 15:05:25 · 67 阅读 · 0 评论