算法课第2周第1题——100. Same Tree
来源:互联网 发布:组态王软件代理 编辑:程序博客网 时间:2024/06/18 18:42
题目描述:
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
程序代码:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/class Solution {public:bool isSameTree(TreeNode* p, TreeNode* q) {// 若其中一个为空,另一不为空,则不相同if ((p == NULL && q != NULL) || (p != NULL && q == NULL)) {return false;}// 若都为空,则相同else if (p == NULL && q == NULL) {return true;}// 若都不为空,比较节点值。节点值相同的情况下,对左右节点进行递归else {if (p->val != q->val) {return false;}else {return (isSameTree(p->left, q->left) && isSameTree(p->right, q->right));}}}};
简要题解:
本题是一道有关二叉树和递归的问题。本周所学的分治算法中常常用到递归,因此先通过本题再练习一下递归的使用。
要判断两个二叉树是否完全相同,首先要从根节点开始判断。第一种情况,若两树的根节点一个为空而另一个不为空,则两树不相同,返回false;第二种情况,若两树根节点都为空,则相同,返回true;第三种情况,若两树根节点都不为空,则判断根节点的值, 若值不同,则不相同,返回false, 若值相同,再进一步对左右节点进行判断。这里只需要分别对两树的左右节点调用isSameTree函数进行递归即可判断,若两树左右节点递归的值都为true,则两树完全相同,否则则不相同。
本题与分治算法有许多相似之处,通过本题我巩固了递归的使用。同时还复习了二叉树这一重要数据结构以及有关二叉树的一些算法。
0 0
- 算法课第2周第1题——100. Same Tree
- 算法课第十七周作业 | Same Tree
- 算法课第十八周Same Tree
- Algorithms—100.Same Tree
- 算法课第1周第2题——10. Regular Expression Matching
- LeetCode100—Same Tree
- 算法课第2周第2题——241. Different Ways to Add Parentheses
- 算法课第1周第1题——20. Valid Parentheses
- 算法课第3周第2题——207. Course Schedule
- 算法课第10周第2题——53. Maximum Subarray
- 算法课第12周第2题——63. Unique Paths II
- 算法课第1周第3题——38. Count and Say
- 算法课第3周第1题——113. Path Sum II
- 算法课第4周第1题——417. Pacific Atlantic Water Flow
- 算法课第6周第1题——402. Remove K Digits
- 算法课第7周第1题——516. Longest Palindromic Subsequence
- 算法课第8周第1题——494. Target Sum
- 算法课第9周第1题——474. Ones and Zeroes
- 如何用Fiddler对手机(安卓/iOS)数据进行抓包
- GestureDetector简单使用
- Fiddler建好代理后,能连到手机,但手机不能上网了,求破有果
- 01引言
- 0006_20170228_【我是菜鸟】_NumberFormat虚拟类的小笔记
- 算法课第2周第1题——100. Same Tree
- 02关系模型的介绍
- 03SQL
- 04中级SQL
- 徐悲鸿赠画马车夫
- 06形式化关系查询语言
- 动态规划-波动数列
- 07数据库设计
- [LeetCode]496. Next Greater Element I(下一个更大的元素 1)