莱阳市规划建设局网站,深圳手机网站定制开发,如何学好js网站开发,网页设计页面布局有哪些leetcode 226. 翻转二叉树
226. 翻转二叉树
给你一棵二叉树的根节点 root #xff0c;翻转这棵二叉树#xff0c;并返回其根节点。 示例 1#xff1a; 输入#xff1a;root [4,2,7,1,3,6,9]
输出#xff1a;[4,7,2,9,6,3,1]示例 2#xff1a; 输入#xff1a;r… leetcode 226. 翻转二叉树
226. 翻转二叉树
给你一棵二叉树的根节点 root 翻转这棵二叉树并返回其根节点。 示例 1 输入root [4,2,7,1,3,6,9]
输出[4,7,2,9,6,3,1]示例 2 输入root [2,1,3]
输出[2,3,1]示例 3 输入root []
输出[] 代码
// leetcode 226翻转二叉树
// 使用层序遍历的方法 依次翻转左右子树
class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (root nullptr){return root;}queueTreeNode* treeQue;treeQue.push(root);TreeNode* cur;while (!treeQue.empty()){cur treeQue.front();treeQue.pop();//先入队 再交换if (cur-left ! nullptr){treeQue.push(cur-left);}if (cur-right ! nullptr){treeQue.push(cur-right);}swap(cur-left, cur-right);}return root;}
};
leetcode101.对称二叉树
101. 对称二叉树
给你一个二叉树的根节点 root 检查它是否轴对称。 示例 1 输入root [1,2,2,3,4,4,3]
输出true示例 2 输入root [1,2,2,null,3,null,3]
输出false代码
// 迭代
class Solution {
public:bool isSymmetric(TreeNode* root) {if (root nullptr){return true;}queueTreeNode* treeQue;treeQue.push(root-left); //确定顺序 先左后右treeQue.push(root-right);while (!treeQue.empty()){TreeNode* tmp1 treeQue.front();treeQue.pop();TreeNode* tmp2 treeQue.front();treeQue.pop();if (tmp1 nullptr tmp2 nullptr){continue;}if (tmp1 nullptr || tmp2 nullptr){// 上一个if已经排除了都为空的情况return false;}if (tmp1-val ! tmp2-val){return false;}treeQue.push(tmp1-left);treeQue.push(tmp2-right);treeQue.push(tmp1-right);treeQue.push(tmp2-left);}return true;}
};