IT技術(shù)小屋

          秋風(fēng)秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks
          Given a binary tree, return the inorder traversal of its nodes' values.
          For example:
          Given binary tree {1,#,2,3},
             1
              \
               2
              /
             3
          return [1,3,2].
          Note: Recursive solution is trivial, could you do it iteratively?

          切記p節(jié)點(diǎn)初始時(shí)指向root.left。代碼如下:
           1 public class BinaryTreeInorderTraversal {
           2     public ArrayList<Integer> inorderTraversal(TreeNode root) {
           3         ArrayList<Integer> inOrder = new ArrayList<Integer>();
           4         if (root == null)
           5             return inOrder;
           6         Stack<TreeNode> s = new Stack<TreeNode>();
           7         s.add(root);
           8         TreeNode p = root.left;
           9         while (!s.empty()) {
          10             while (p != null) {
          11                 s.add(p);
          12                 p = p.left;
          13             }
          14             TreeNode n = s.pop();
          15             inOrder.add(n.val);
          16             p = n.right;
          17             if (p != null) {
          18                 s.add(p);
          19                 p = p.left;
          20             }
          21         }
          22         return inOrder;
          23     }
          24 }
          posted on 2014-01-04 11:17 Meng Lee 閱讀(170) 評論(0)  編輯  收藏 所屬分類: Leetcode
          主站蜘蛛池模板: 滨州市| 清新县| 廊坊市| 建瓯市| 六盘水市| 惠安县| 彭水| 建德市| 南召县| 宜兰市| 同江市| 洛南县| 海淀区| 建德市| 鞍山市| 民县| 兴山县| 武穴市| 丽江市| 汉阴县| 蒲城县| 和顺县| 张家口市| 张掖市| 洛宁县| 五常市| 辽源市| 阳高县| 拉孜县| 垦利县| 甘德县| 广东省| 石柱| 太湖县| 福泉市| 公主岭市| 湘潭县| 织金县| 辛集市| 体育| 南皮县|