zoukankan      html  css  js  c++  java
  • 94. Binary Tree Inorder Traversal

    Given a binary tree, return the inorder traversal of its nodes' values.

    For example:
    Given binary tree [1,null,2,3],

       1
        
         2
        /
       3
    

    return [1,3,2].

    Note: Recursive solution is trivial, could you do it iteratively?

    Show Company Tags
    Show Tags
    Show Similar Problems
     

    Recursive:

    public IList<int> InorderTraversal(TreeNode root) {
            var res = new List<int>();
            Recursive(root, res);
            return res;
            
        }
        public void Recursive(TreeNode root, IList<int> list)
        {
            if(root == null) return;
            if(root.left == null && root.right == null)
            {
                list.Add(root.val);
                return;
            }
            Recursive(root.left, list);
            list.Add(root.val);
            Recursive(root.right, list);
        }

    Iteration:

    此题的iteration的条件是最难把握的,因为如果每次stack push 左子树到底的时候,我们需要让loop的变量tree element指向该左元素的右子数。右子数可能为null, 此时就会跳出循环。解决方法是在循环条件里加上stack 不为空。只要不为空,则证明还有值需要iteration。

     public IList<int> InorderTraversal(TreeNode root) {
            var res = new List<int>();
            Stack<TreeNode> stack = new Stack<TreeNode>();
            
            while(root != null || stack.Count() >0)
            {
                while(root != null)
                {
                    stack.Push(root);
                    root = root.left;
                }
                var a = stack.Pop();
                res.Add(a.val);
                root = a.right;//cruz we have stack.Count() > 0 , no worry right is null
            }
            return res;
        }
  • 相关阅读:
    c如何弹出保存路径/保存文件对话框
    c++ 读写txt方法
    windows获取环境变量
    Block UI 获取treelist column值
    MFC中如何弹出选择文件/文件夹对话框(C++)
    What can change the CID of a NX license server?
    spring之AOP
    spring注解开发
    spring配置Bean
    spring之IOC和DI实现
  • 原文地址:https://www.cnblogs.com/renyualbert/p/5860906.html
Copyright © 2011-2022 走看看