zoukankan      html  css  js  c++  java
  • Binary Tree Zigzag Level Order Traversal,z字形遍历二叉树,得到每层访问的节点值。

    问题描述:

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).

    For example:
    Given binary tree [3,9,20,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    return its zigzag level order traversal as:

    [
      [3],
      [20,9],
      [15,7]
    ]
    

    算法分析:和前面问题类似。

    public class BinaryTreeZigzagLevelOrderTraversal 
    {
    	 public List<List<Integer>> zigzagLevelOrder(TreeNode root) 
    	 {
    		 List<Integer> list = new ArrayList<>();
    		 List<List<Integer>> res = new ArrayList<>();
    		 
    		 if(root == null) 
    		 {
    			 return res;
    		 }
    		 
    		 Stack<TreeNode> s1 = new Stack<>();
    		 Stack<TreeNode> s2 = new Stack<>();
    		 
    		 s1.push(root);
    		 while(!s1.isEmpty() || !s2.isEmpty())
    		 {
    			 while(!s1.isEmpty())
    			 {
    				 TreeNode temp = s1.pop();
    				 if(temp.left != null)
    				 {
    					 s2.push(temp.left);
    				 }
    				 if(temp.right != null)
    				 {
    					 s2.push(temp.right);
    				 }
    				 list.add(temp.val);
    			 }
    			 if(list.size() != 0)
    				 res.add(list);
    			 list = new ArrayList<>();
    			 while(!s2.isEmpty())
    			 {
    				 TreeNode temp = s2.pop();
    				 if(temp.right != null)
    				 {
    					 s1.push(temp.right);
    				 }
    				 if(temp.left != null)
    				 {
    					 s1.push(temp.left);
    				 }
    				 list.add(temp.val);
    			 }
    			 if(list.size() != 0)
    				 res.add(list);
    			 list = new ArrayList<>();
    		 }
    		 return res;
    	 }
    }
    

      

  • 相关阅读:
    主成分分析(PCA)原理及推导
    SVD在推荐系统中的应用详解以及算法推导
    奇异值分解(SVD)原理详解及推导
    jdk1.8源码学习笔记
    #WeakHashMap
    #TreeSet
    如何在Centos7安装swoole的PHP扩展
    Photoshop 使用过程中遇到的问题
    Sublime 配置 Markdown,并实时预览
    移动端响应式布局,rem动态更新
  • 原文地址:https://www.cnblogs.com/masterlibin/p/5910492.html
Copyright © 2011-2022 走看看