长沙教育网站建设wordpress tinection
长沙教育网站建设,wordpress tinection,百度免费网站申请,网站域名过期了怎么办题目链接
参考文章
解题思路 如果从整棵树的角度来看#xff0c;用层序遍历翻转一棵二叉树需要遍历同一层节点后再反向遍历该层节点并且改变指针#xff0c;但是这样做不仅低效率还会访问到野指针。因此必须换一个角度考虑问题#xff1a;如果将每一个父节点的左右孩子交换…题目链接
参考文章
解题思路 如果从整棵树的角度来看用层序遍历翻转一棵二叉树需要遍历同一层节点后再反向遍历该层节点并且改变指针但是这样做不仅低效率还会访问到野指针。因此必须换一个角度考虑问题如果将每一个父节点的左右孩子交换同样能达到翻转二叉树的效果。 如果使用前序遍历参考之前“前序遍历输出节点值”的代码和递归三要素确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑。
class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (root nullptr) return root;swap(root-left, root-right); invertTree(root-left); invertTree(root-right); return root;}
};
同样也可以使用层序遍历增加一句交换左右节点即可
class Solution {
public:TreeNode* invertTree(TreeNode* root){queueTreeNode* temp;if(root ! nullptr)temp.push(root);elsereturn root;while(!temp.empty()){int num temp.size();for(int i 0; i num; i){TreeNode* top temp.front();temp.pop();swap(top-left, top-right);if(top-left ! nullptr) temp.push(top-left);if(top-right ! nullptr)temp.push(top-right);}}}return root;
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86735.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!