zoukankan      html  css  js  c++  java
  • LeetCode: Binary Tree Inorder Traversal 解题报告

    Binary Tree Inorder Traversal

    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?

    confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

    SOL:

    包括递归与非递归方法:

     1 /**
     2  * Definition for binary tree
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     public List<Integer> inorderTraversal1(TreeNode root) {
    12         List<Integer> ret = new ArrayList<Integer>();
    13         rec(root, ret);
    14         return ret;
    15     }
    16     
    17     public void rec(TreeNode root, List<Integer> ret) {
    18         if (root == null) {
    19             return;
    20         }
    21         
    22         rec(root.left, ret);
    23         ret.add(root.val);
    24         rec(root.right, ret);
    25     }
    26     
    27     public List<Integer> inorderTraversal(TreeNode root) {
    28         List<Integer> ret = new ArrayList<Integer>();
    29         if (root == null) {
    30             return ret;
    31         }
    32         
    33         Stack<TreeNode> s = new Stack<TreeNode>();
    34         TreeNode cur = root;
    35         
    36         while (true) {
    37             while (cur != null) {
    38                 s.push(cur);
    39                 cur = cur.left;
    40             }
    41             
    42             if (s.isEmpty()) {
    43                 break;
    44             }
    45             
    46             cur = s.pop();
    47             ret.add(cur.val);
    48             
    49             cur = cur.right;
    50         }
    51         
    52         return ret;
    53     }
    54 }
    View Code
  • 相关阅读:
    第03组 Beta冲刺(4/5)
    第03组 Beta冲刺(3/5)
    第03组 Beta冲刺(2/5)
    第03组 Beta冲刺(1/5)
    第03组 Alpha冲刺(6/6)
    第03组 Alpha冲刺(5/6)
    软工实践个人总结
    最终作业
    Beta答辩总结
    Beta 冲刺(7/7)
  • 原文地址:https://www.cnblogs.com/yuzhangcmu/p/4141585.html
Copyright © 2011-2022 走看看