zoukankan      html  css  js  c++  java
  • LeetCode——Binary Tree Postorder Traversal

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

    For example:
    Given binary tree {1,#,2,3},

       1
        
         2
        /
       3
    

    return [3,2,1].

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

    中文:二叉树的兴许遍历(左-右-根)。能用非递归吗?

    递归:

    public class BinaryTreePostorderTraversal {
        public List<Integer> postorderTraversal(TreeNode root) {
        	List<Integer> list = new ArrayList<Integer>();
            if(root == null)
            	return list;
            list.addAll(postorderTraversal(root.left));
            list.addAll(postorderTraversal(root.right));
            list.add(root.val);
            return list;
        }
        // Definition for binary tree
        public class TreeNode {
            int val;
            TreeNode left;
            TreeNode right;
            TreeNode(int x) { val = x; }
        }
    }

    非递归:

        public List<Integer> postorderTraversal(TreeNode root){
        	List<Integer> list = new ArrayList<Integer>();
        	if(root == null)
        		return list;
        	Stack<TreeNode> stack = new Stack<TreeNode>();
        	stack.push(root);//最后訪问
        	while(!stack.isEmpty()){
        		TreeNode current = stack.peek();
        		//根节点无子节点
        		if(current.left == null && current.right == null){
        			list.add(current.val);
        			stack.pop();
        		}
        		if(current.left != null){
        			stack.push(current.left);
        			current.left = null;
        			continue;
        		}
        		if(current.right != null){
        			stack.push(current.right);
        			current.right = null;
        			continue;
        		}
        	}
        	return list;
        }


查看全文
  • 相关阅读:
    WNMP 环境搭建
    单元测试工具 unitils
    [转] 利用git钩子,使用python语言获取提交的文件列表
    Spring AOP理解
    JavaScript Cookies使用
    [转]SURF算法解析
    [转]四旋翼飞行器的姿态解算小知识点
    [转]C++内存管理
    学习SQL笔记
    华为软件类常见面试问题集锦
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10551927.html
  • Copyright © 2011-2022 走看看