zoukankan      html  css  js  c++  java
  • Leecode刷题之旅-C语言/python-100相同的树

    /*
     * @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]
    [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)
  • 相关阅读:
    关于基于.net的WEB程序开发所需要的一些技术归纳
    技术的学习方法探索之一
    生活,就是让程序为人们服务!
    js滑动提示效果
    radio判断是否为空
    JS清除网页历史记录,屏蔽后退按钮
    多表查询存储过程
    IP地址转化为数字,charindex ,SUBSTRING
    c# byte转化为string
    获得IP地址中文
  • 原文地址:https://www.cnblogs.com/lixiaoyao123/p/10523101.html
Copyright © 2011-2022 走看看