• LeetCode.101. 对称二叉树


    101. 对称二叉树

    难度:easy

     

     两种方法:

    第一种:递归方法

    1. // 递归方法
    2. class Solution {
    3. public boolean isSymmetric(TreeNode root) {
    4. if (root == null) {
    5. return true;
    6. }
    7. return compare(root.left, root.right);
    8. }
    9. public boolean compare(TreeNode leftNode, TreeNode rightNode) {
    10. // 左节点和右节点都为空:true
    11. // 左右节点只有一个为空,false
    12. // 左右节点都不为空,但左右节点得值不相等
    13. if (leftNode == null && rightNode == null) {
    14. return true;
    15. } else if ((leftNode != null && rightNode == null) || (leftNode == null && rightNode != null)) {
    16. return false;
    17. } else if (leftNode.val != rightNode.val) {
    18. return false;
    19. }
    20. // 比较左右节点得内外侧子节点
    21. boolean outSideCompare = compare(leftNode.left, rightNode.right);
    22. boolean inSideCompare = compare(leftNode.right, rightNode.left);
    23. return outSideCompare && inSideCompare;
    24. }
    25. }

    第二种方法:通过队列或者栈来实现

    1. class Solution {
    2. public boolean isSymmetric(TreeNode root) {
    3. if (root == null) {
    4. return true;
    5. }
    6. Queue queue = new LinkedList();
    7. queue.offer(root.left);
    8. queue.offer(root.right);
    9. while (!queue.isEmpty()) {
    10. TreeNode node1 = queue.poll();
    11. TreeNode node2 = queue.poll();
    12. if (node1 == null && node2 == null) {
    13. continue;
    14. } else if ((node1 == null && node2 != null) || (node1 != null && node2 == null)) {
    15. return false;
    16. } else if (node1.val != node2.val) {
    17. return false;
    18. }
    19. queue.offer(node1.left);
    20. queue.offer(node2.right);
    21. queue.offer(node1.right);
    22. queue.offer(node2.left);
    23. }
    24. return true;
    25. }
    26. }

    推免后做得第一道题,纪念一下哈哈。

  • 相关阅读:
    1019 数字黑洞
    学习笔记-flowable
    leetcode 318
    WebRTC音视频采集和播放示例及MediaStream媒体流解析
    IDEA的Facets添加web后没有反应
    大数据挖掘决策树计算过程
    PyTorch 深度学习之多分类问题Softmax Classifier(八)
    Spring 事务和事务传播机制
    新版jadx-gui导入dex会提示Bad checksum
    23.09.5 《CLR via C#》 笔记5
  • 原文地址:https://blog.csdn.net/weixin_45867071/article/details/126935304