一、手写算法
https://leetcode-cn.com/problems/same-tree/submissions/
思路
- 遇到树,递归操作
都为空true,一个为空false,两个值不等false,负责递归左子树、右子树两两相比
代码
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} p
* @param {TreeNode} q
* @return {boolean}
*/
var isSameTree = function(p, q) {
if(p === null && q === null){
return true;
}
if(p === null || q === null){
return false;
}
if(p.val !== q.val){
return false;
}
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right)
};
复杂度分析
时间复杂度:
- 空间复杂度:
二、编程题
// https://bigfrontend.dev/zh/problem/virtual-dom-v-jsx-2