剑指offer-二叉树的镜像
发布日期:2022-02-05 22:03:43 浏览次数:1 分类:技术文章

本文共 714 字,大约阅读时间需要 2 分钟。

题目描述:

请完成一个函数,输入一个二叉树,该函数输出它的镜像,即交换树的所有左右子节点。

解决方案:辅助栈

  • 使用栈的数据结构来辅助树进行镜像的完成
  • 首先在栈中加入根节点(节点为空,返回Null),将节点出栈
  • 其次,将节点的左右子节点入栈
  • 然后,将左右节点交换
  • 依次循环以上步骤,直到栈空时,退出,返回根节点(镜像完成)

解决代码如下:

# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution(object):    def mirrorTree(self, root):    """            :type root: TreeNode            :rtype: TreeNode            """     if not root: return      stack = [root]     while stack:     	node = stack.pop()     	if node.left: stack.append(node.left)     	if node.right: stack.append(node.right)     	node.left, node.right = node.right, node.left    return root

提交结果:

在这里插入图片描述

转载地址:https://blog.csdn.net/lu_yunjie/article/details/113613450 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:leetcode——括号匹配系列问题
下一篇:Leetcode链表题之:141.环形链表

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月08日 01时23分01秒