ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

101. 对称二叉树(dfs)

101. 对称二叉树(dfs) 题解101. 对称二叉树 - 力扣LeetCode101. 对称二叉树 - 力扣LeetCode复杂度分析时间复杂度 O(N)空间复杂度 O(N)/** * * Definition for a binary tree node. * * struct TreeNode { * * int val; * * TreeNode *left; * * TreeNode *right; * * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * * }; * */ class Solution { public: bool isSymmetric(TreeNode* root) { if(!root) { return true; } return is_symmetric(root-left, root-right); } bool is_symmetric(TreeNode* root1, TreeNode* root2) { if(!root1 !root2) { return true; } if(!root1 || !root2) { return false; } if(root1-val ! root2-val) { return false; } return is_symmetric(root1-left, root2-right) is_symmetric(root1-right, root2-left); } };复杂度分析时间复杂度 O(N)空间复杂度 O(N)class Solution { public: bool check(TreeNode *u, TreeNode *v) { queue TreeNode* q; q.push(u); q.push(v); while (!q.empty()) { u q.front(); q.pop(); v q.front(); q.pop(); if (!u !v) continue; if ((!u || !v) || (u-val ! v-val)) return false; q.push(u-left); q.push(v-right); q.push(u-right); q.push(v-left); } return true; } bool isSymmetric(TreeNode* root) { return check(root, root); } };
返回列表