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之路

树872. 叶子相似的树

leetcode872. 叶子相似的树(c++)

leetcode 872. 叶子相似的树(Leaf-Similar Trees)

我用java刷 leetcode 872. 叶子相似的树

LeetCode 872. 叶子相似的树