题解 | #相逆叶子#

相逆叶子

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 背包问题 分治算法:归并排序、快速排序

全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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