作为程序员最重要的是懂得自己编写代码的原理就是算法,而翻转二叉树是最基本的算法思维,有利于寻找日后解决更复杂问题的途径,就像翻转二叉树所体现的问题一样,
分解问题:二叉树的翻转涉及到左右子树,故而我们可以采用二分的方式进行分解,先进行左子树的遍历翻转,再进行右子树的遍历翻转。
求解问题:当我们一次遍历到某一为nullptr的叶结点时,返回上一非空结点,交换这一非空结点的左右子树,此为递归时的出口。
合并问题:寻着递归链向上回溯,针对每一个分解后的问题进行合并(无相关代码,由递归性质决定)。
作为程序员最重要的是懂得自己编写代码的原理就是算法,而翻转二叉树是最基本的算法思维,有利于寻找日后解决更复杂问题的途径,就像翻转二叉树所体现的问题一样,
分解问题:二叉树的翻转涉及到左右子树,故而我们可以采用二分的方式进行分解,先进行左子树的遍历翻转,再进行右子树的遍历翻转。
求解问题:当我们一次遍历到某一为nullptr的叶结点时,返回上一非空结点,交换这一非空结点的左右子树,此为递归时的出口。
合并问题:寻着递归链向上回溯,针对每一个分解后的问题进行合并(无相关代码,由递归性质决定)。