故事起因来自于在leetcode写一个有关于二叉树的题目,题中需要涉及到树节点的交换,这里就牵扯到了swap函数,我在使用C++和Java实现题目求解的过程中,就出现了一些小问题,有关于值传递和应用传递的问题,我都明白其原理,但是在实际写程序的过程中还是会出现问题,所以在此写下笔记。(下面这篇笔记写得很好)
C++swap详解:https://blog.youkuaiyun.com/apollon_krj/article/details/51445885
Java到底实现的是值传递还是引用传递? 请看看下面博文
https://blog.youkuaiyun.com/singwhatiwanna/article/details/105671887?spm=1001.2014.3001.5502
1.故事背景题目
2.C++求解过程
这个题目用C++来写的话,其自带的标准库中自带swap交换函数,所以可以直接使用,代码试下如下:
class Solution {
public:
//C++的STL中自带了swap()
TreeNode* invertTree(TreeNode* root) {
if(root == NULL) return root;
swap(root->left, root->right);
invertTree(root->left);
invertTree