关于Leetcode上二叉树的算法总结(2)

/** * 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: TreeNode* invertTree(TreeNode* root) { if(NULL == root) return NULL; queue<TreeNode*> que; que.push(root); while(!que.empty()){ TreeNode* pChild = que.front(); que.pop(); TreeNode* pNode = pChild->left; pChild->left = pChild->right; pChild->right = pNode; if(pChild->left) que.push(pChild->left); if(pChild->right) que.push(pChild->right); } return root; } };

 3、总结

  只要掌握了DFS和BFS的思想,其它关于二叉树的算法基本上都是类似的,必要的时候通过画图来让自己感性认识一下也是极好的。

  关于Leetcode上的题目代码

------------------------------------------分割线------------------------------------------

免费下载地址在

用户名与密码都是

具体下载目录在 /2015年资料/8月/23日/关于Leetcode上二叉树的算法总结/

下载方法见

------------------------------------------分割线------------------------------------------

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c2ac9743beb524ffea33c551ee7aaef3.html