剑指offer——28对称的二叉树
题目描述
class Solution01 {
public:
bool isSymmetrical(TreeNode* pRoot)
{
if (pRoot == nullptr)return true;
vector<int>v1, v2;
DFS(pRoot, v1, true);
DFS(pRoot, v2, false);
if (v1 == v2)return true;
else return false;
}
void DFS(TreeNode* pRoot, vector<int>&v,const bool flag)
{
if (pRoot == nullptr)
v.push_back(-);
else
v.push_back(pRoot->val);
if (pRoot == nullptr)return;
if (flag)
{
DFS(pRoot->left, v, flag);
DFS(pRoot->right, v, flag);
}
else
{
DFS(pRoot->right, v, flag);
DFS(pRoot->left, v, flag);
}
}
};
class Solution02 {
public:
bool isSymmetrical(TreeNode* pRoot)
{
return DFS(pRoot, pRoot);
}
bool DFS(TreeNode* root1, TreeNode* root2)
{
if (root1 == nullptr && root2 == nullptr)return true;
if (root1 == nullptr || root2 == nullptr)return false;
if (root1->val != root2->val)return false;
return DFS(root1->left, root2->right) && DFS(root1->right, root2->left);
}
};
剑指offer——28对称的二叉树的更多相关文章
- [剑指 Offer 28. 对称的二叉树]
剑指 Offer 28. 对称的二叉树 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / ...
- 【Java】 剑指offer(28) 对称的二叉树
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它 ...
- 剑指Offer:对称的二叉树【28】
剑指Offer:对称的二叉树[28] 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 题目分析 Java题解 /* publi ...
- Go语言实现:【剑指offer】对称的二叉树
该题目来源于牛客网<剑指offer>专题. 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. Go语言实现: 方法一:递归 / ...
- 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
1. 题目描述 /** 请实现一个函数,用来判断一颗二叉树是不是对称的. 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /** 1.只要pRoot.left和 ...
- 剑指offer:对称的二叉树
题目描述: 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 思路分析: 二叉树的镜像就是左右相反,对称二叉树即镜像相等.利用一个递归函数 ...
- 剑指Offer 58. 对称的二叉树 (二叉树)
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 题目地址 https://www.nowcoder.com/practice/ ...
- [剑指Offer] 58.对称的二叉树
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. [思路]递归,关键是isSame函数中的最后一句 /* struct Tree ...
- 【剑指offer】对称的二叉树
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 分析:从上到下直接遍历,利用栈或者队列暂存结点,注意结点的存和取都是成对的 c ...
随机推荐
- shutil库文件的操作
一.拷贝,移动,改名 import shutil old_file=r"C:\Users\ffm11\Desktop\AI.docx" new_file=r"C:\Use ...
- git 问题整理 fetch -p 修剪远程分支
修剪远程分支 问题描述 前提:假设现在远程有三个分支master.testA.testB 问题:使用命令 git fetch origin 获取到远程分支,然后使用命令 git branch -r 来 ...
- Java-Class-@I:org.springframework.web.bind.annotation.PostMapping
ylbtech-Java-Class-@I:org.springframework.web.bind.annotation.PostMapping 1.返回顶部 2.返回顶部 1. package ...
- CSS:CSS 背景
ylbtech-CSS:CSS 背景 1.返回顶部 1. CSS 背景 CSS 背景属性用于定义HTML元素的背景. CSS 属性定义背景效果: background-color background ...
- XML 扩展部分
引入命名空间 xmlns DTD缺点 1.不支持命名空间 2.支持的数据类型很少 3.DTD不可扩展 4.DTD不遵循XML规范 DTD的优点 简洁 schema 通过schema来解决DTD的不足 ...
- playbackRate控制音频播放倍速
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- iptables简介及常用命令
相关文件 iptables服务配置文件 -rw-------. 1 root root 2374 9月 4 2017 /etc/sysconfig/iptables-config iptables规则 ...
- BOM 3.1 location对象 | history对象 | navigator对象 | 定时器 | 三大系列
JavaScript分三个部分: 1. ECMAScript标准---基本语法 2. DOM--->Document Object Model 文档对象模型,操作页面元素的 3. BOM---& ...
- hdu6325 /// 上凸包
题目大意: 给定n 为n个点 给定n个点的坐标 两个点(xi,yi) (xj,yj)之间的花费是 xi*yj-yi*xj (可能为负数) 要求从点1经过若干个点到点n最小花费的路径 且路径要按x轴方向 ...
- Failed selinux 错误
再看他如何解决,步骤大概是: 1.开机之后进入linux启动选择界面,停在平时启动的哪那一行按E键,进入grub编辑页面. 2.按↓键光标往下移,在标签fi下面的内容里加上一个enforcing=0. ...