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 閱讀(175) 評論(0)  編輯  收藏 所屬分類: Leetcode
          主站蜘蛛池模板: 兰溪市| 永德县| 那坡县| 阜平县| 昔阳县| 高安市| 潼关县| 贺州市| 肇州县| 磐石市| 长乐市| 开阳县| 边坝县| 城固县| 芒康县| 长沙县| 枣庄市| 绥芬河市| 安乡县| 梨树县| 留坝县| 惠州市| 朝阳市| 石嘴山市| 阳山县| 健康| 怀远县| 镇雄县| 邓州市| 拉萨市| 凤阳县| 奉节县| 西宁市| 遂昌县| 大新县| 米易县| 苗栗县| 高邑县| 出国| 星座| 漳平市|