日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

leetcode103JAVA_[LeetCode] 103. Binary Tree Zigzag Level Order Traversal Java

發布時間:2025/4/5 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode103JAVA_[LeetCode] 103. Binary Tree Zigzag Level Order Traversal Java 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

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]

]

題意及分析:給出一個橫向遍歷的二叉樹,要求給出 按照Z字形橫向遍歷的每一層 的點。這道題我們可以用stack來求解,簡單來講就是把每一層添加到一個stack里面,然后遍歷輸出結果的同時將遍歷點的子節點添加到一個新的stack里面(先添加左子節點還是右子節點根據上一層添加的順序),遍歷完之后將新的stack賦值給stack進行下一層的遍歷。代碼如下:

代碼:

/**

* Definition for a binary tree node.

* public class TreeNode {

* int val;

* TreeNode left;

* TreeNode right;

* TreeNode(int x) { val = x; }

* }

*/

public class Solution {

public List> zigzagLevelOrder(TreeNode root) {

List> res=new ArrayList<>();

TreeNode node=root;

Stack stack =new Stack<>();

if(node!=null)

stack.push(node);

int leftOrRight=0;//0為先遍歷左子樹,1為右子樹

while(!stack.isEmpty()){

Stack nextStack =new Stack<>();

List list=new ArrayList<>();

while(!stack.isEmpty()){

TreeNode temp=stack.pop();

list.add(temp.val);

if(leftOrRight==0){

if(temp.left!=null)

nextStack.push(temp.left);

if(temp.right!=null)

nextStack.push(temp.right);

}else{

if(temp.right!=null)

nextStack.push(temp.right);

if(temp.left!=null)

nextStack.push(temp.left);

}

}

if(leftOrRight==0)

leftOrRight=1;

else {

leftOrRight=0;

}

res.add(new ArrayList<>(list));

//System.out.println(list);

list.clear();

stack=(Stack) nextStack.clone ();;

nextStack.clear();

}

return res;

}

}

總結

以上是生活随笔為你收集整理的leetcode103JAVA_[LeetCode] 103. Binary Tree Zigzag Level Order Traversal Java的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。