<object id="getjk"></object>
<object id="getjk"></object>
    1. <object id="getjk"></object>
    2. <th id="getjk"></th>
      XYcooper
      • 性别: Icon_minigender_1
      • vinbet国际

      ▯□☐Lintcode67 Binary Tree Inorder Traversal solution 题解

       

      阅读更多
      □☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□☐◘◊◘▪▫▯□
      【题目描述】

      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/




      (责任编辑:XYcooper)
      分享到: