Lintcode67 Binary Tree Inorder Traversal solution 题解

来源:互联网 发布:android 仿照淘宝排序 编辑:程序博客网 时间:2024/06/07 13:52

【题目描述】

Given a binary tree, return the inorder traversal of its nodes' values.

给出一棵二叉树,返回其中序遍历

【题目链接】

www.lintcode.com/en/problem/binary-tree-inorder-traversal/

【题目解析】

递归版

最好理解,递归调用时注意返回值和递归左右子树的顺序即可。

迭代版

使用辅助栈,空间复杂度O(n),时间复杂度O(n).

中序遍历没有前序遍历好写,其中之一就在于入栈出栈的顺序和限制规则。我们采用「左根右」的访问顺序可知主要有如下四步构成。

1.首先需要一直对左子树迭代并将非空节点入栈

2.节点指针为空后不再入栈

3.当前节点为空时进行出栈操作,并访问栈顶节点

4.将当前指针p用其右子节点替代

步骤2,3,4对应「左根右」的遍历结构,只是此时的步骤2取的左值为空。

【参考答案】

www.jiuzhang.com/solutions/binary-tree-inorder-traversal/

阅读全文
0 0