标签:iss example lan ted 否则 init ssi node 注意
/* * @lc app=leetcode.cn id=100 lang=c * * [100] 相同的树 * * https://leetcode-cn.com/problems/same-tree/description/ * * algorithms * Easy (51.47%) * Total Accepted: 16K * Total Submissions: 31K * Testcase Example: ‘[1,2,3]\n[1,2,3]‘ * * 给定两个二叉树,编写一个函数来检验它们是否相同。 * * 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 * * 示例 1: * * 输入: 1 1 * ? / \ / * ? 2 3 2 3 * * ? [1,2,3], [1,2,3] * * 输出: true * * 示例 2: * * 输入: 1 1 * ? / * ? 2 2 * * ? [1,2], [1,null,2] * * 输出: false * * * 示例 3: * * 输入: 1 1 * ? / \ / * ? 2 1 1 2 * * ? [1,2,1], [1,1,2] * * 输出: false * * */ /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ bool isSameTree(struct TreeNode* p, struct TreeNode* q) { if(p == NULL && q == NULL) return true; if(p != NULL && q != NULL){ if(p -> val != q -> val) return false; else{ return (isSameTree(p -> left, q -> left) && isSameTree(p -> right, q -> right)); } } else return false; }
一般来说对树的操作,用递归法比较简单,第一个判断是否都为空,当都不为空的情况下判断值是否相等。不相等返回false。相等的话,进行递归,只有当左孩子和右孩子都满足条件的时候返回true,否则就是false了。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
python:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def isSameTree(self, p, q): """ :type p: TreeNode :type q: TreeNode :rtype: bool """ def issamenode(a,b): if a==None and b==None: return True if (a and b) == None: return False #注意加括号 if a.val !=b.val: return False return issamenode(a.left,b.left) and issamenode(a.right,b.right) return issamenode(p,q)
Leecode刷题之旅-C语言/python-100相同的树
标签:iss example lan ted 否则 init ssi node 注意
原文地址:https://www.cnblogs.com/lixiaoyao123/p/10523101.html