标签:nil val div return 地址 编辑器 turn 递归 元素
示例: 输入: 4 / 2 7 / \ / 1 3 6 9 输出: 4 / 7 2 / \ / 9 6 3 1
因为树具有天然的递归结构,关于树的问题,我们常用递归来实现。
翻转二叉树,我们首先判断如果反转一颗空树结果还是一颗空树。
如果不是空树,就将父节点的左右节点交换,并进行递归。
//go
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func invertTree(root *TreeNode) *TreeNode {
if root == nil {
return nil
}
// tmp := root.Left
// root.Left = root.Right
// root.Right = tmp
root.Left, root.Right = root.Right, root.Left // go语法交换元素,等价于上面3行代码
root.Left = invertTree(root.Left) // 递归左子树
root.Right = invertTree(root.Right) // 递归柚子树
return root
}
地址:https://mp.weixin.qq.com/s/bMqbrSY4RV_T4BPdOz8uWg
标签:nil val div return 地址 编辑器 turn 递归 元素
原文地址:https://www.cnblogs.com/smallleiit/p/13292008.html