Python 解LeetCode:606 Construct String from Binary Tree

Posted 潇湘旧友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 解LeetCode:606 Construct String from Binary Tree相关的知识,希望对你有一定的参考价值。

  • 题目描述:用先序遍历的方式把二叉树转换成字符串,其中结点用括号分割,具体示例见题目链接

  • 思路:
  1. 先序遍历,先把根结点的值转化成字符串,然后递归的把左右子树的值转化成字符串
  2. 把1中的根结点和左右子结点的字符串连接起来就是结果,其中需要注意:
    • 如果右子树存在值,左子树无论有没有值,都需要用()括起来
    • 如果右子树不存在值,左子树只有在存在值的时候才括起来
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def tree2str(self, t):
        """
        :type t: TreeNode
        :rtype: str
        """
        if not t:
            return ‘‘
        root = str(t.val)
        left = self.tree2str(t.left)
        right = self.tree2str(t.right)
        if right:
            return root + ‘(‘ + left + ‘)(‘ + right + ‘)‘
        else:
            if left:
                return root + ‘(‘ + left + ‘)‘
            else:
                return root

以上是关于Python 解LeetCode:606 Construct String from Binary Tree的主要内容,如果未能解决你的问题,请参考以下文章

leetcode606

[leetcode-606-Construct String from Binary Tree]

LeetCode 606. Construct String from Binary Tree

LeetCode 606. Construct String from Binary Tree

LeetCode Algorithm 606. 根据二叉树创建字符串

LeetCode Algorithm 606. 根据二叉树创建字符串