已解答 简单
相关标签
相关企业给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
示例 2:
输入:root = [2,1,3]
输出:[2,3,1]
示例 3:
输入:root = []
输出:[]
提示:
- 树中节点数目范围在
[0, 100]
内 -100 <= Node.val <= 100
func invertTree(root *TreeNode) *TreeNode { if root == nil { return root } root.Left, root.Right = invertTree(root.Right), invertTree(root.Left) return root }
已解答 简单
相关标签
相关企业给你一个二叉树的根节点 root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
提示:
- 树中节点数目在范围
[1, 1000]
内 -100 <= Node.val <= 100
进阶:你可以运用递归和迭代两种方法解决这个问题吗?
func isSymmetric(root *TreeNode) bool { var isRevTree func(nodeA,nodeB*TreeNode)bool isRevTree = func(nodeA, nodeB *TreeNode) bool { if nodeA == nil && nodeB == nil { return true } if nodeA == nil || nodeB == nil || nodeA.Val != nodeB.Val { return false } return isRevTree(nodeA.Left, nodeB.Right) && isRevTree(nodeA.Right, nodeB.Left) } return isRevTree(root.Left, root.Right)
已解答 中等
相关标签
相关企业给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]
示例 2:
输入:root = [1]
输出:[[1]]
示例 3:
输入:root = []
输出:[]
提示:
- 树中节点数目在范围
[0, 2000]
内 -1000 <= Node.val <= 1000
func levelOrder(root *TreeNode) [][]int { varres [][]int if root == nil { return res } bfs := []*TreeNode{root} forlen(bfs) != 0 { levelNode := len(bfs) varcur []int fori := 0; i < levelNode; i++ { curNode := bfs[0] bfs = bfs[1:] cur = append(cur, curNode.Val) if curNode.Left != nil { bfs = append(bfs, curNode.Left) } if curNode.Right != nil { bfs = append(bfs, curNode.Right) } } res = append(res, cur) } return res } 标签:return,nil,示例,root,随想录,bfs,二叉树,第十五天 From: https://www.cnblogs.com/suxinmian/p/18017711