前言:
现时姐妹们对“c语言二叉树操作”大概比较关心,我们都需要知道一些“c语言二叉树操作”的相关资讯。那么小编在网上搜集了一些关于“c语言二叉树操作””的相关知识,希望姐妹们能喜欢,朋友们快快来学习一下吧!2021-10-05:对称二叉树。给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。力扣101。
福大大 答案2021-10-05:
递归。head1的左节点 ==head2的右节点。head1的右节点 ==head2的左节点。
代码用golang编写。代码如下:
package mainimport "fmt"func main() { head := &TreeNode{} head.val = 1 head.left = &TreeNode{} head.left.val = 2 head.right = &TreeNode{} head.right.val = 2 head.left.left = &TreeNode{} head.left.left.val = 3 head.right.right = &TreeNode{} head.right.right.val = 3 ret := isSymmetric(head) fmt.Println(ret)}type TreeNode struct { val int left *TreeNode right *TreeNode}func isSymmetric(root *TreeNode) bool { return isMirror(root, root)}// 一棵树是原始树 head1// 另一棵是翻面树 head2func isMirror(head1 *TreeNode, head2 *TreeNode) bool { if head1 == nil && head2 == nil { return true } if head1 != nil && head2 != nil { return head1.val == head2.val && isMirror(head1.left, head2.right) && isMirror(head1.right, head2.left) } // 一个为空,一个不为空 false return false}
执行结果如下:
***
[左神java代码]()
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言二叉树操作