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

  • 思路:

  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

最新文章

  1. 数据结构:JAVA_二叉数查找树基本实现(中)
  2. 数据库开发基础-SQl Server 存储过程
  3. 【POJ 2503】Babelfish(字符串)
  4. python内置函数每个执行一次
  5. hdu 2035 人见人爱A^B
  6. SQL Server监测查询性能
  7. crtmpserver系列之一:流媒体概述
  8. DB2中时间格式化
  9. spring mvc DispatcherServlet详解前传---HttpServletBean类
  10. 树莓派读取DHT11传感器的源代码
  11. Mac搭建Java开发环境
  12. Android 访问assets下的文件
  13. FB面经 Prepare: Count Unique Island
  14. AWS 实战
  15. Jenkins+Jmeter持续集成笔记(一:环境准备)
  16. python虚拟环境virtualenv简介
  17. shiny: Web Application Framework for R
  18. ryu学习笔记(2) 之 ryu-manager运行报错
  19. asp.net后台操作javascript:confirm返回值
  20. 微信后端服务架构及其过载控制系统DAGOR

热门文章

  1. codeforces164A
  2. Vue进阶(Bus/作用域slot/动态组件)
  3. Bean Shell常用内置变量
  4. 《Glibc内存管理》笔记DAY4
  5. 4.linux vim 编辑器的基本操作
  6. js type
  7. ML_Review_SVM(Ch9)
  8. CORTEX-M3中断的现场保护问题
  9. python @classmethod
  10. LoadRunne遇到的一些问题FAQ(持续更新...)