题解 | #相逆叶子#

相逆叶子

https://www.nowcoder.com/practice/41c7b0e8710e43ca9f328bf06ea2aff3

写个函数层序遍历取所有叶子结点

之后拿到了比一比就行

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    public static ArrayList<Integer> levelOrder(TreeNode root) {
        Queue<TreeNode> q = new LinkedList<>();
        ArrayList<Integer> arrayList = new ArrayList<>();
        q.add(root);
        while (!q.isEmpty()) {
            TreeNode tmp = q.poll();
            if (tmp.left == null && tmp.right == null) arrayList.add(tmp.val);
            if (tmp.left != null)  q.add(tmp.left);
            if (tmp.right != null) q.add(tmp.right);
        }
        return arrayList;
    }

    public boolean leafSimilar (TreeNode root1, TreeNode root2) {
        if (root1 == null && root2 == null) return true;
        ArrayList<Integer> arrayList1 = levelOrder(root1);
        ArrayList<Integer> arrayList2 = levelOrder(root2);
        if (arrayList1.size() != arrayList2.size()) {
            return false;
        } else {
            for (int i = 0; i < arrayList1.size(); i++) {
                if (arrayList1.get(i) != arrayList2.get(arrayList1.size() - i - 1))
                    return false;
            }
            return true;
        }
    }
}

算法题刷刷刷 文章被收录于专栏

数组、链表、栈、队列、堆、树、图等。 查找和排序:二分查找、线性查找、快速排序、归并排序、堆排序等。 动态规划:背包问题、最长公共子序列、最短路径 贪心算法:活动选择、霍夫曼编码 图:深度优先搜索、广度优先搜索、拓扑排序、最短路径算法(如 Dijkstra、Floyd-Warshall) 字符串操作:KMP 算法、正则表达式匹配 回溯算法:八皇后问题、0-1 背包问题 分治算法:归并排序、快速排序

全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务