二叉树的中序遍历(非递归)

思想:
1)借助栈
2)stack一直添加非空的叶子结点
3)stack每次pop()结点p,然后访问,最后p.right更新root

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def inorderTraversal(self, root: TreeNode):
        stack = []
        res = []
        while root!=None or len(stack)>0:
            while root!=None:
                stack.append(root)
                root = root.left
            if len(stack)>0:
                p = stack.pop()
                res.append(p.val)
                root = p.right
        return res
        
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.重视低迷行业 低迷行业虽然比热门行业要增长慢,但是在市场的优胜劣汰以后,只有少数优质的企业会留下来,反而拥有投...
    章鱼哥的进步日记阅读 600评论 0 1
  • 我还记得那个男生小时候的样子。 因为他长得足够深刻,像极了某位丑星;当然,也因为他让我收到了人生第一封情书。六年级...
    当局者蝶儿阅读 295评论 0 1

友情链接更多精彩内容