• 剑指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 }
  • 相关阅读:
    树链剖分-bzoj1036
    POJ3489企鹅
    51nod 1130
    51nod-8-16
    51nod-8-15
    51nod 8-14
    51nod1582-n叉树
    51nod1574排列转换
    51nod1785数据流中的算法
    iOS开发--Swift 最近项目开发中遇到的一些小问题与解决方法
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10879709.html
Copyright © 2020-2023  润新知