872. 叶子相似的树
Posted lgz0921
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了872. 叶子相似的树相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode-cn.com/problems/leaf-similar-trees/
思路:题目要求的叶子顺序,正好是每次从左子树开始递归得到叶子的顺序。递归两棵树,按照递归得到的顺序存下叶子节点(两个list),判断两个list是否相等即可。
kotlin知识点:a == b比较的是数值(相当于equals(),现在好的编译器(比如idea)写equals(),会提示改成==了),a === b比较的是地址
上代码:
/**
* Example:
* var ti = TreeNode(5)
* var v = ti.`val`
* Definition for a binary tree node.
* class TreeNode(var `val`: Int) {
* var left: TreeNode? = null
* var right: TreeNode? = null
* }
*/
class Solution {
fun getLeaf(root: TreeNode, leafList: ArrayList<Int>) {
if (root.left == null && root.right == null) {
leafList.add(root.`val`)
return
}
root.left?.let { x -> getLeaf(x, leafList) }
root.right?.let { x -> getLeaf(x, leafList) }
}
fun leafSimilar(root1: TreeNode?, root2: TreeNode?): Boolean {
val treeOne = ArrayList<Int>()
val treeTwo = ArrayList<Int>()
getLeaf(root1!!, treeOne)
getLeaf(root2!!, treeTwo)
return treeOne == treeTwo
}
}
以上是关于872. 叶子相似的树的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 872 叶子相似的树[DFS 二叉树] HERODING的LeetCode之路