leetcode 101. Symmetric Tree对称树(递归和迭代)
来源:互联网 发布:js设置input宽度 编辑:程序博客网 时间:2024/06/05 14:11
问题描述:
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
递归:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isSymmetric(TreeNode root) { if(root == null) return true; return isEqual(root, root); } public boolean isEqual(TreeNode left, TreeNode right){ if(left == null && right == null) return true; if(left == null || right == null) return false; if(left.val != right.val) return false; return (isEqual(left.left, right.right) && isEqual(left.right, right.left)); }}
迭代:
先入先出,利用queue队列进行处理。要注意到的是,不能因为结点为空就跳过不add,因为要判断是否对称。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isSymmetric(TreeNode root) { if(root == null) return true; Queue<TreeNode> q = new LinkedList<>(); q.add(root.left); q.add(root.right); while(q.size() > 1){ TreeNode left = q.poll(); TreeNode right = q.poll(); if(left == null && right == null) continue; if(left == null || right == null) return false; if(left.val != right.val) return false; q.add(left.left); q.add(right.right); q.add(left.right); q.add(right.left); } return true; } }
阅读全文
0 0
- leetcode 101. Symmetric Tree对称树(递归和迭代)
- leetcode 101. Symmetric Tree 判断对称树,递归和迭代
- 101. Symmetric Tree 对称树,递归算法
- 二叉树系列 - [LeetCode] Symmetric Tree 判断二叉树是否对称,递归和非递归实现
- Leetcode#101. Symmetric Tree(对称树)
- leetcode-Symmetric Tree 对称树
- leetcode-Symmetric Tree 对称树
- leetcode-Symmetric Tree 对称树
- 101. Symmetric Tree--DFS(递归)/BFS(queue+迭代)
- leetcode 101.Symmetric Tree-对称二叉树|深度遍历
- LeetCode 101. Symmetric Tree(对称的树)
- leetcode -- 101. Symmetric Tree 【对称树,结构,内容】
- leetcode 101. Symmetric(对称的) Tree
- 【leetcode 二叉树对称判断】Symmetric Tree
- Symmetric Tree[LeetCode]对称二叉树
- Leetcode Symmetric Tree 对称二叉树
- leetcode Symmetric Tree对称树的判断
- leetCode 101.Symmetric Tree(对称树) 解题思路和方法
- Anaconda 在windows下安装pymssql
- Linux命令(二)
- 百度地图 历史轨迹播放
- 定义 popupWindow
- 第一篇博客:体会
- leetcode 101. Symmetric Tree对称树(递归和迭代)
- 个人整理SSH框架xml的配置过程
- git证书验证失败粗暴解决办法 CApath:none
- Mongo DB java 起步操作,连接数据库,查询语句
- python ide开发环境wingide-6.0安装以及使用介绍
- rabbitmq使用
- Nexus OSS私服仓库的安装和配置
- Python学习数据结构、输入输出、文件对象
- python的文件读写笔记