二叉树转换为中缀表达式leetcode
时间: 2023-10-08 19:13:20 浏览: 69
您好!将二叉树转换为中缀表达式可以采用二叉树的中序遍历方法实现。具体步骤如下:
1. 从根节点开始,对左子树进行递归遍历,直至遍历到叶子节点。在遍历的过程中,将左子树的节点值及其对应的运算符添加到表达式字符串中。
2. 遍历到当前节点时,将当前节点的值及其对应的运算符添加到表达式字符串中。
3. 对右子树进行递归遍历,直至遍历到叶子节点。在遍历的过程中,将右子树的节点值及其对应的运算符添加到表达式字符串中。
4. 最终得到的表达式字符串即为中缀表达式。
下面是一个具体的示例代码,您可以参考一下:
```
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def inorderTraversal(self, root: TreeNode) -> str:
if not root:
return ""
if not root.left and not root.right:
return str(root.val)
left = self.inorderTraversal(root.left)
current = str(root.val)
right = self.inorderTraversal(root.right)
if root.left and root.right:
return "(" + left + current + right + ")"
else:
return left + current + right
```
该代码实现了一个名为 `inorderTraversal` 的函数,该函数接受一个二叉树根节点作为参数,返回对应的中缀表达式字符串。您可以调用该函数,将根节点传入,即可得到中缀表达式。