IT技術(shù)小屋

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評(píng)論 :: 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) 評(píng)論(0)  編輯  收藏 所屬分類: Leetcode
          主站蜘蛛池模板: 远安县| 化隆| 灵璧县| 栾城县| 康保县| 永昌县| 雷州市| 翁牛特旗| 邵阳县| 虞城县| 峨边| 林周县| 靖江市| 谷城县| 寿光市| 松阳县| 大安市| 安图县| 方正县| 唐海县| 沽源县| 星座| 突泉县| 体育| 始兴县| 菏泽市| 榆树市| 遵义县| 辽阳县| 萨迦县| 淮北市| 迭部县| 聊城市| 天祝| 遂昌县| 东兰县| 青铜峡市| 梁山县| 高要市| 巴中市| 会东县|