Tree - 100. Same Tree
时间:2022-07-25
本文章向大家介绍Tree - 100. Same Tree,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
100. Same Tree
Given two binary trees, write a function to check if they are the same or not.
Two binary trees are considered the same if they are structurally identical and the nodes have the same value.
Example 1:
Input:
1 1
/ /
2 3 2 3
[1,2,3], [1,2,3]
Output: true
思路:
题目很简单,判断两个树是否相同,只要随便使用一种方式遍历一次树就可以,这里使用先序遍历来做。
代码:
go:
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
//recursive
func isSameTree(p *TreeNode, q *TreeNode) bool {
if p == nil && q == nil {
return true
}
if (p == nil && q != nil) || (p != nil && q == nil) {
return false
}
if p.Val != q.Val {
return false
} else {
return isSameTree(p.Left, q.Left) && isSameTree(p.Right, q.Right)
}
}
/* iteratively
func isSameTree(p *TreeNode, q *TreeNode) bool {
if p == nil && q == nil {
return true
}
if (p == nil && q != nil) || (p != nil && q == nil) {
return false
}
stackp := list.New()
stackq := list.New()
stackp.PushBack(p)
stackq.PushBack(q)
for stackp.Len() != 0 || stackq.Len() != 0 {
ep, eq := stackp.Back(), stackq.Back()
stackp.Remove(ep)
stackq.Remove(eq)
curp, curq := ep.Value.(*TreeNode), eq.Value.(*TreeNode)
if curp.Val != curq.Val {
return false
}
if curp.Left != nil && curq.Left != nil{
stackp.PushBack(curp.Left)
stackq.PushBack(curq.Left)
} else if curp.Left == nil && curq.Left == nil {
} else {
return false
}
if curp.Right != nil && curq.Right != nil{
stackp.PushBack(curp.Right)
stackq.PushBack(curq.Right)
} else if curp.Right == nil && curq.Right == nil {
} else {
return false
}
}
return true
}
*/
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- requests+lxml+xpath爬取豆瓣电影
- python之子类继承父类时进行初始化的一些问题
- 【猫狗数据集】定义模型并进行训练模型
- springmvc之处理模型数据Map
- requests+lxml+xpath爬取电影天堂
- 【python-leetcode90-子集】子集Ⅱ
- 【colab pytorch】保存模型
- 【猫狗数据集】保存训练模型并加载进行继续训练
- django-URL匹配(二)
- opengl-球体的绘制
- 【python-leetcode46-子集】全排列
- 【python-leetcode784-子集】字母大小写全排列
- 悬挂引用是如何被Rust消灭的?
- python小例子(二)
- 面试题系列第1篇:说说==和equals的区别?你的回答可能是错误的