力扣 题目:
给定一个二叉树的根节点 root
,返回 它的 中序 遍历 。
示例 1:
输入:root = [1,null,2,3] 输出:[1,3,2]
用栈进行非递归遍历更容易理解,当然递归遍历也更简洁。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
s1=[];
s2=[];
if root==None:
return [];
while root or s1 :
if root:
s1.append(root);
root=root.left;
else:
root=s1.pop();
s2.append(root.val);
root=root.right;
return s2; #非递归中序遍历
"""
res=[];
def process(root):
if root==None:return;
process(root.left);
res.append(root.val);
process(root.right);
process(root);
return res;
"""#递归中序遍历