【LeetCode题目记录-5】二叉树是否相同

Same Tree

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.

【分析1-原创】递归判断

/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p==null&&q==null){
            return true;
        }
        if((p==null&&q!=null)||(p!=null&&q==null)){
            return false;
        }
        return p.val==q.val?isSameTree(p.left, q.left)&&isSameTree(p.right, q.right):false;
    }
}

【分析2-非原创】参考:https://oj.leetcode.com/discuss/3470/seeking-for-better-solution

这里将前面的两条判断归为一条语句。

public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p==null || q==null) {
            return p==q;
        } else
            return (p.val == q.val)&&isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
    }
时间: 2024-08-10 02:10:11

【LeetCode题目记录-5】二叉树是否相同的相关文章

【LeetCode题目记录-7】为完全二叉树添加层指针

Populating Next Right Pointers in Each Node Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; } Populate each next pointer to point to its next right node. If there is no next right node, the next

【LeetCode题目记录-2】从前序遍历和中序遍历构建二叉树

Construct Binary Tree from Preorder and Inorder Traversal Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in the tree. [分析1-非原创]递归调用. 参考:http://bylijinnan.iteye.com/blog/135

【LeetCode题目记录-11】判断二叉树是否是镜像的(对称的)

Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, this binary tree is symmetric:     1    / \   2   2 / \ / \ 3  4 4  3 But the following is not:     1    / \   2   2    \   \  

【LeetCode题目记录-10】已排序的数组去除重复元素

Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory.

【LeetCode题目记录-4】插入数组间隔问题

Insert Interval Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary). You may assume that the intervals were initially sorted according to their start times. Example 1: Given intervals [1,3],[6,9], i

【LeetCode题目记录-9】排序后的数组生成平衡的二叉搜索树

Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending order, convert it to a height balanced BST. [分析1-原创]中间值作为根节点,左边的中间值作为左孩子,右边的中间值作为右孩子.一直递归探底即可. /** * Definition for binary tree * public class TreeNode {

【LeetCode题目记录-6】1~n作为key可以有多少种二叉搜索树(BST)的形式

Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example, Given n = 3, there are a total of 5 unique BST's. 1         3     3      2      1 \       /     /      / \      \ 3    

【LeetCode题目记录-8】从排序后的单链表中去除重复元素

Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3. [分析-原创]相等的话nextNode后移即可,

【LeetCode题目记录-13】二分搜索排序后的二维数组

Search a 2D Matrix Writean efficient algorithm that searches for a value in an m x n matrix.This matrix has the following properties: Integers in each row are sorted from left to right. The first integer of each row is greater than the last integer o