• 101. 对称二叉树


    给定一个二叉树,检查它是否是镜像对称的。

    例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
    /
    2 2
    / /
    3 4 4 3
    但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

    1
    /
    2 2

    3 3
    说明:

    如果你可以运用递归和迭代两种方法解决这个问题,会很加分。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/symmetric-tree
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    运用先序遍历的非递归算法,和逆后序遍历的非递归算法进行遍历比对即可。不过时间复杂度排名不高。

     1 public class Solution {
     2 
     3     public boolean isSymmetric(TreeNode root) {
     4         if (root == null) return true;
     5         // 先序遍历的非递归算法 与 后序遍历的非递归算法
     6         Stack<TreeNode> pre = new Stack<>();
     7         Stack<TreeNode> post = new Stack<>();
     8         TreeNode p = root, q = root;
     9 
    10         do {
    11             for (TreeNode i = p, j = q; i != null; i = i.left, j = j.right) {
    12                 // 访问节点
    13                 try {
    14                     if (i.val != j.val)
    15                         return false;
    16                 } catch (NullPointerException e) {
    17                     return false;
    18                 }
    19                 pre.push(i);
    20                 post.push(j);
    21             }
    22 
    23             p = pre.pop().right;
    24             q = post.pop().left;
    25         } while (p != null || !pre.empty());
    26         return true;
    27     }
    28 
    29     public static void main(String[] args) {
    30         //1, 2, 2, 3, 4, 4, 3
    31         //1,2,2,null,3,null,3
    32         //1,2,3,null,4,5,null
    33         TreeNode p = _94.create(new Object[]{1,2,2,null,3,null,3});
    34         boolean symmetric = new Solution().isSymmetric(p);
    35         System.out.println("
    symmetric = " + symmetric);
    36     }
    37 }
  • 相关阅读:
    第三十章 混合线程同步构造
    第二十九章 基元线程同步构造
    第二十八章 I/O限制的异步操作
    第二十七章 计算限制的异步操作
    第二十六章 线程基础
    第二十五章 与WinRT组件互操作
    css实现排序箭头
    js中的toFixed神坑
    react使用中碰到的小问题
    看到一个js中sleep的例子,挺好玩的
  • 原文地址:https://www.cnblogs.com/yfs123456/p/11612918.html
Copyright © 2020-2023  润新知