栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(每日一练c++)CC166 寻找下一个结点

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(每日一练c++)CC166 寻找下一个结点

描述

给定树的根结点指针TreeNode* root和结点的值int p,编写一个函数,寻找该二叉树中指定结点的下一个结点(即中序遍历的后继),并返回p结点的后继结点的值。保证结点的值是小于等于100000的正数且没有重复值,若不存在后继返回-1。

    public int findSucc(TreeNode root, int p) {
		// 非递归中序遍历,栈
		Stack list = new Stack();
		if(root == null || root.left == null){
			return -1;
		}
		TreeNode cur = root;
		boolean flag = false;
		int res = -1;
		while(cur != null || !list.isEmpty()){
			if(cur != null){
				list.push(cur);
				cur = cur.left;
			}else{
				cur = list.pop();
				System.out.println(cur.val);
				if(flag){
					res = cur.val;
					break;
				}
				if(cur.val == p){
					flag = true;
				}
				cur = cur.right;
			}
		}
		return res;
	}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892383.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号