zoukankan      html  css  js  c++  java
  • [leetcode]101. Symmetric Tree对称树

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

    For example, this binary tree [1,2,2,3,4,4,3] is symmetric:

        1
       / 
      2   2
     /  / 
    3  4 4  3
    

    But the following [1,2,2,null,3,null,3] is not:

        1
       / 
      2   2
          
       3    3
    

    Note:
    Bonus points if you could solve it both recursively and iteratively.

    题目

    给定二叉树,判断其是否左右对称

    思路

    DFS

    代码

     1 /* 
     2 Time:O(n),
     3 Space: O(logn) 即 O(h) 树的deepest hight
     4 */
     5 public class Solution {
     6     public boolean isSymmetric(TreeNode root) {
     7         if (root == null) return true;
     8         return isSymmetric(root.left, root.right);
     9     }
    10     private static boolean isSymmetric(TreeNode p, TreeNode q) {
    11         if (p == null && q == null) return true;   // 终止条件
    12         if (p == null || q == null) return false;  // 终止条件
    13         return p.val == q.val      // 三方合并
    14                 && isSymmetric(p.left, q.right)
    15                 && isSymmetric(p.right, q.left);
    16     }
    17 }
  • 相关阅读:
    关于flume配置加载
    ListMultimap 容器
    HotSpotOverview.pdf
    芝麻西瓜
    念念不忘必有回响
    phpstrom代码格式化
    小总结
    Redis支持的数据类型
    如何通过phpstorm查看某一行代码的变更记录
    mysql自动添加时间
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9825075.html
Copyright © 2011-2022 走看看