[LeetCode]: 100: Same Tree
生活随笔
收集整理的這篇文章主要介紹了
[LeetCode]: 100: 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.
?
解析:
比較兩個二叉樹是否相同采用將二叉樹進行“先序遍歷”,“中序遍歷”和“后序遍歷”,如果其中有兩種遍歷的結果相同,則這兩個二叉樹相等
?
代碼:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ public class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {String ResultL1 = Front(p);String ResultL2 = Front(q);String ResultL3 = Middle(p);String ResultL4 = Middle(q);/*String ResultL5 = Last(p);String ResultL6 = Last(q);*/if(ResultL1.equals(ResultL2) && ResultL3.equals(ResultL4)){return true;}else{return false;}}public static String Front(TreeNode Tree){if(Tree == null){return "X";}String strResult = "";strResult += Tree.val;strResult += Front(Tree.left);strResult += Front(Tree.right);return strResult;}public static String Middle(TreeNode Tree){if(Tree == null){return "X";}String strResult = "";strResult += Middle(Tree.left);strResult += Tree.val;strResult += Middle(Tree.right);return strResult;}public static String Last(TreeNode Tree){if(Tree == null){return "X";}String strResult = "";strResult += Last(Tree.left);strResult += Last(Tree.right);strResult += Tree.val;return strResult;}}?
網上高人的代碼如下:添加了空樹的判斷
bool isSameTree(TreeNode *p, TreeNode *q) { // Start typing your C/C++ solution below // DO NOT write int main() function if (p == NULL && q == NULL) return true; else if (p == NULL || q == NULL) return false; return p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right); }?
轉載于:https://www.cnblogs.com/savageclc26/p/4779894.html
總結
以上是生活随笔為你收集整理的[LeetCode]: 100: Same Tree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab-非线性方程求根函数及函数曲
- 下一篇: 迷你世界公主房建造教程