zoukankan      html  css  js  c++  java
  • 剑指offer——对称的二叉树

    题目链接:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

    解题思路:

    用栈来存储。

     1 /*
     2 public class TreeNode {
     3     int val = 0;
     4     TreeNode left = null;
     5     TreeNode right = null;
     6 
     7     public TreeNode(int val) {
     8         this.val = val;
     9 
    10     }
    11 
    12 }
    13 */
    14 import java.util.*;
    15 public class Solution {
    16     boolean isSymmetrical(TreeNode pRoot)
    17     {
    18         if(pRoot == null) return true;
    19         Stack<TreeNode> s = new Stack<>();
    20         s.push(pRoot.left);
    21         s.push(pRoot.right);
    22         while(!s.empty()) {
    23             TreeNode right = s.pop();//成对取出
    24             TreeNode left = s.pop();
    25             if(left == null && right == null) continue;
    26             //continue 语句是跳过循环体中剩余的语句而强制执行下一次循环,其作用为结束本次循环,
    27             //即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
    28             if(left == null || right == null) return false;
    29             if(left.val != right.val) return false;
    30             //成对插入
    31             s.push(left.left);
    32             s.push(right.right);
    33             s.push(left.right);
    34             s.push(right.left);
    35         }
    36         return true;
    37     }
    38 }
  • 相关阅读:
    最舒适的路线(并查集)
    POJ 2411 状态压缩DP
    NYOJ 708 ones
    HUD 1024 Max Sum Plus Plus
    最长上升子序列
    HDU 4717 The Moving Points
    重新开始写随笔
    读书的意义
    读《如何阅读一本书》笔记
    读《GRAY HAT PYTHON》笔记
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10879709.html
Copyright © 2011-2022 走看看